rta: store real types in live_cast_type
[nit.git] / src / parser / parser_prod.nit
index e43d64e..05daac5 100644 (file)
@@ -1,6 +1,6 @@
 # Production AST nodes full definition.
 # This file was generated by SableCC (http://www.sablecc.org/).
-package parser_prod
+module parser_prod
 
 import lexer
 intrude import parser_nodes
@@ -88,6 +88,15 @@ redef class AModule
         end
     end
 
+               redef fun n_moduledecl=(node)
+               do
+                       _n_moduledecl = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_moduledecl != null then
@@ -173,6 +182,32 @@ redef class AModuledecl
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwmodule=(node)
+               do
+                       _n_kwmodule = node
+                       node.parent = self
+               end
+               redef fun n_name=(node)
+               do
+                       _n_name = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -252,6 +287,30 @@ redef class AStdImport
        end
     end
 
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwimport=(node)
+               do
+                       _n_kwimport = node
+                       node.parent = self
+               end
+               redef fun n_name=(node)
+               do
+                       _n_name = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_visibility)
@@ -314,6 +373,23 @@ redef class ANoImport
        end
     end
 
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwimport=(node)
+               do
+                       _n_kwimport = node
+                       node.parent = self
+               end
+               redef fun n_kwend=(node)
+               do
+                       _n_kwend = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_visibility)
@@ -333,6 +409,8 @@ redef class APublicVisibility
     do
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
     end
@@ -363,6 +441,13 @@ redef class APrivateVisibility
        end
     end
 
+               redef fun n_kwprivate=(node)
+               do
+                       _n_kwprivate = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwprivate)
@@ -394,6 +479,13 @@ redef class AProtectedVisibility
        end
     end
 
+               redef fun n_kwprotected=(node)
+               do
+                       _n_kwprotected = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwprotected)
@@ -425,6 +517,13 @@ redef class AIntrudeVisibility
        end
     end
 
+               redef fun n_kwintrude=(node)
+               do
+                       _n_kwintrude = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwintrude)
@@ -611,6 +710,58 @@ redef class AStdClassdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_classkind=(node)
+               do
+                       _n_classkind = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_extern_code_block=(node)
+               do
+                       _n_extern_code_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwend=(node)
+               do
+                       _n_kwend = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -673,6 +824,8 @@ redef class ATopClassdef
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_propdefs do
@@ -711,6 +864,8 @@ redef class AMainClassdef
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_propdefs do
@@ -744,6 +899,13 @@ redef class AConcreteClasskind
        end
     end
 
+               redef fun n_kwclass=(node)
+               do
+                       _n_kwclass = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwclass)
@@ -788,6 +950,18 @@ redef class AAbstractClasskind
        end
     end
 
+               redef fun n_kwabstract=(node)
+               do
+                       _n_kwabstract = node
+                       node.parent = self
+               end
+               redef fun n_kwclass=(node)
+               do
+                       _n_kwclass = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwabstract)
@@ -820,6 +994,13 @@ redef class AInterfaceClasskind
        end
     end
 
+               redef fun n_kwinterface=(node)
+               do
+                       _n_kwinterface = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwinterface)
@@ -851,6 +1032,13 @@ redef class AEnumClasskind
        end
     end
 
+               redef fun n_kwenum=(node)
+               do
+                       _n_kwenum = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwenum)
@@ -897,6 +1085,20 @@ redef class AExternClasskind
        end
     end
 
+               redef fun n_kwextern=(node)
+               do
+                       _n_kwextern = node
+                       node.parent = self
+               end
+               redef fun n_kwclass=(node)
+               do
+                       _n_kwclass = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwextern)
@@ -961,6 +1163,27 @@ redef class AFormaldef
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -1026,6 +1249,25 @@ redef class ASuperclass
        end
     end
 
+               redef fun n_kwsuper=(node)
+               do
+                       _n_kwsuper = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwsuper)
@@ -1209,6 +1451,81 @@ redef class AAttrPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_readable=(node)
+               do
+                       _n_readable = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_writable=(node)
+               do
+                       _n_writable = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwvar=(node)
+               do
+                       _n_kwvar = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_id2=(node)
+               do
+                       _n_id2 = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -1324,6 +1641,37 @@ redef class AMethPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+               redef fun n_signature=(node)
+               do
+                       _n_signature = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -1447,6 +1795,49 @@ redef class ADeferredMethPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwmeth=(node)
+               do
+                       _n_kwmeth = node
+                       node.parent = self
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+               redef fun n_signature=(node)
+               do
+                       _n_signature = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -1559,6 +1950,42 @@ redef class AInternMethPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwmeth=(node)
+               do
+                       _n_kwmeth = node
+                       node.parent = self
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+               redef fun n_signature=(node)
+               do
+                       _n_signature = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -1713,6 +2140,63 @@ redef class AExternMethPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwmeth=(node)
+               do
+                       _n_kwmeth = node
+                       node.parent = self
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+               redef fun n_signature=(node)
+               do
+                       _n_signature = node
+                       node.parent = self
+               end
+               redef fun n_extern=(node)
+               do
+                       _n_extern = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_extern_calls=(node)
+               do
+                       _n_extern_calls = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_extern_code_block=(node)
+               do
+                       _n_extern_code_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -1861,6 +2345,56 @@ redef class AConcreteMethPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwmeth=(node)
+               do
+                       _n_kwmeth = node
+                       node.parent = self
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+               redef fun n_signature=(node)
+               do
+                       _n_signature = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_block=(node)
+               do
+                       _n_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -2008,6 +2542,58 @@ redef class AConcreteInitPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwinit=(node)
+               do
+                       _n_kwinit = node
+                       node.parent = self
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_signature=(node)
+               do
+                       _n_signature = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_block=(node)
+               do
+                       _n_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -2172,6 +2758,65 @@ redef class AExternInitPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwnew=(node)
+               do
+                       _n_kwnew = node
+                       node.parent = self
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_signature=(node)
+               do
+                       _n_signature = node
+                       node.parent = self
+               end
+               redef fun n_extern=(node)
+               do
+                       _n_extern = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_extern_calls=(node)
+               do
+                       _n_extern_calls = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_extern_code_block=(node)
+               do
+                       _n_extern_code_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -2240,6 +2885,22 @@ redef class AMainMethPropdef
        end
     end
 
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_block=(node)
+               do
+                       _n_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_kwredef != null then
@@ -2360,6 +3021,49 @@ redef class ATypePropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwtype=(node)
+               do
+                       _n_kwtype = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -2418,6 +3122,20 @@ redef class AReadAble
        end
     end
 
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwreadable=(node)
+               do
+                       _n_kwreadable = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_kwredef != null then
@@ -2482,6 +3200,27 @@ redef class AWriteAble
        end
     end
 
+               redef fun n_kwredef=(node)
+               do
+                       _n_kwredef = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwwritable=(node)
+               do
+                       _n_kwwritable = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_kwredef != null then
@@ -2519,6 +3258,13 @@ redef class AIdMethid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -2550,6 +3296,13 @@ redef class APlusMethid
        end
     end
 
+               redef fun n_plus=(node)
+               do
+                       _n_plus = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_plus)
@@ -2581,6 +3334,13 @@ redef class AMinusMethid
        end
     end
 
+               redef fun n_minus=(node)
+               do
+                       _n_minus = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_minus)
@@ -2612,6 +3372,13 @@ redef class AStarMethid
        end
     end
 
+               redef fun n_star=(node)
+               do
+                       _n_star = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_star)
@@ -2643,6 +3410,13 @@ redef class ASlashMethid
        end
     end
 
+               redef fun n_slash=(node)
+               do
+                       _n_slash = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_slash)
@@ -2674,6 +3448,13 @@ redef class APercentMethid
        end
     end
 
+               redef fun n_percent=(node)
+               do
+                       _n_percent = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_percent)
@@ -2705,6 +3486,13 @@ redef class AEqMethid
        end
     end
 
+               redef fun n_eq=(node)
+               do
+                       _n_eq = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_eq)
@@ -2736,6 +3524,13 @@ redef class ANeMethid
        end
     end
 
+               redef fun n_ne=(node)
+               do
+                       _n_ne = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_ne)
@@ -2767,6 +3562,13 @@ redef class ALeMethid
        end
     end
 
+               redef fun n_le=(node)
+               do
+                       _n_le = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_le)
@@ -2798,6 +3600,13 @@ redef class AGeMethid
        end
     end
 
+               redef fun n_ge=(node)
+               do
+                       _n_ge = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_ge)
@@ -2829,6 +3638,13 @@ redef class ALtMethid
        end
     end
 
+               redef fun n_lt=(node)
+               do
+                       _n_lt = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_lt)
@@ -2860,6 +3676,13 @@ redef class AGtMethid
        end
     end
 
+               redef fun n_gt=(node)
+               do
+                       _n_gt = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_gt)
@@ -2891,6 +3714,13 @@ redef class ALlMethid
        end
     end
 
+               redef fun n_ll=(node)
+               do
+                       _n_ll = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_ll)
@@ -2922,6 +3752,13 @@ redef class AGgMethid
        end
     end
 
+               redef fun n_gg=(node)
+               do
+                       _n_gg = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_gg)
@@ -2966,6 +3803,18 @@ redef class ABraMethid
        end
     end
 
+               redef fun n_obra=(node)
+               do
+                       _n_obra = node
+                       node.parent = self
+               end
+               redef fun n_cbra=(node)
+               do
+                       _n_cbra = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_obra)
@@ -2998,6 +3847,13 @@ redef class AStarshipMethid
        end
     end
 
+               redef fun n_starship=(node)
+               do
+                       _n_starship = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_starship)
@@ -3042,6 +3898,18 @@ redef class AAssignMethid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -3100,6 +3968,23 @@ redef class ABraassignMethid
        end
     end
 
+               redef fun n_obra=(node)
+               do
+                       _n_obra = node
+                       node.parent = self
+               end
+               redef fun n_cbra=(node)
+               do
+                       _n_cbra = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_obra)
@@ -3114,8 +3999,7 @@ redef class ASignature
             n_opar: nullable TOpar,
             n_params: Collection[Object], # Should be Collection[AParam]
             n_cpar: nullable TCpar,
-            n_type: nullable AType,
-            n_closure_decls: Collection[Object] # Should be Collection[AClosureDecl]
+            n_type: nullable AType
     )
     do
         empty_init
@@ -3136,11 +4020,6 @@ redef class ASignature
        if n_type != null then
                n_type.parent = self
        end
-       for n in n_closure_decls do
-               assert n isa AClosureDecl
-               _n_closure_decls.add(n)
-               n.parent = self
-       end
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -3187,20 +4066,31 @@ redef class ASignature
             end
             return
        end
-        for i in [0.._n_closure_decls.length[ do
-            if _n_closure_decls[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDecl
-                    _n_closure_decls[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_decls.remove_at(i)
-                end
-                return
-            end
-        end
     end
 
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_opar != null then
@@ -3215,9 +4105,6 @@ redef class ASignature
         if _n_type != null then
             v.enter_visit(_n_type.as(not null))
         end
-            for n in _n_closure_decls do
-                v.enter_visit(n)
-           end
     end
 end
 redef class AParam
@@ -3291,6 +4178,34 @@ redef class AParam
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_dotdotdot=(node)
+               do
+                       _n_dotdotdot = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -3305,101 +4220,6 @@ redef class AParam
         end
     end
 end
-redef class AClosureDecl
-    private init empty_init do end
-
-    init init_aclosuredecl (
-            n_kwbreak: nullable TKwbreak,
-            n_bang: nullable TBang,
-            n_id: nullable TId,
-            n_signature: nullable ASignature,
-            n_expr: nullable AExpr
-    )
-    do
-        empty_init
-        _n_kwbreak = n_kwbreak
-       if n_kwbreak != null then
-               n_kwbreak.parent = self
-       end
-        _n_bang = n_bang.as(not null)
-       n_bang.parent = self
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-        _n_signature = n_signature.as(not null)
-       n_signature.parent = self
-        _n_expr = n_expr
-       if n_expr != null then
-               n_expr.parent = self
-       end
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_kwbreak == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TKwbreak
-                _n_kwbreak = new_child
-           else
-               _n_kwbreak = null
-            end
-            return
-       end
-        if _n_bang == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TBang
-                _n_bang = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_signature == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa ASignature
-                _n_signature = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_expr == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExpr
-                _n_expr = new_child
-           else
-               _n_expr = null
-            end
-            return
-       end
-    end
-
-    redef fun visit_all(v: Visitor)
-    do
-        if _n_kwbreak != null then
-            v.enter_visit(_n_kwbreak.as(not null))
-        end
-        v.enter_visit(_n_bang)
-        v.enter_visit(_n_id)
-        v.enter_visit(_n_signature)
-        if _n_expr != null then
-            v.enter_visit(_n_expr.as(not null))
-        end
-    end
-end
 redef class AType
     private init empty_init do end
 
@@ -3474,6 +4294,27 @@ redef class AType
        end
     end
 
+               redef fun n_kwnullable=(node)
+               do
+                       _n_kwnullable = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_kwnullable != null then
@@ -3527,6 +4368,18 @@ redef class ALabel
        end
     end
 
+               redef fun n_kwlabel=(node)
+               do
+                       _n_kwlabel = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwlabel)
@@ -3579,6 +4432,15 @@ redef class ABlockExpr
        end
     end
 
+               redef fun n_kwend=(node)
+               do
+                       _n_kwend = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_expr do
@@ -3688,6 +4550,46 @@ redef class AVardeclExpr
        end
     end
 
+               redef fun n_kwvar=(node)
+               do
+                       _n_kwvar = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwvar)
@@ -3749,6 +4651,22 @@ redef class AReturnExpr
        end
     end
 
+               redef fun n_kwreturn=(node)
+               do
+                       _n_kwreturn = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_kwreturn != null then
@@ -3815,6 +4733,27 @@ redef class ABreakExpr
        end
     end
 
+               redef fun n_kwbreak=(node)
+               do
+                       _n_kwbreak = node
+                       node.parent = self
+               end
+               redef fun n_label=(node)
+               do
+                       _n_label = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwbreak)
@@ -3852,6 +4791,13 @@ redef class AAbortExpr
        end
     end
 
+               redef fun n_kwabort=(node)
+               do
+                       _n_kwabort = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwabort)
@@ -3915,6 +4861,29 @@ redef class AContinueExpr
        end
     end
 
+               redef fun n_kwcontinue=(node)
+               do
+                       _n_kwcontinue = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_label=(node)
+               do
+                       _n_label = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_kwcontinue != null then
@@ -3984,6 +4953,27 @@ redef class ADoExpr
        end
     end
 
+               redef fun n_kwdo=(node)
+               do
+                       _n_kwdo = node
+                       node.parent = self
+               end
+               redef fun n_block=(node)
+               do
+                       _n_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_label=(node)
+               do
+                       _n_label = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwdo)
@@ -4064,6 +5054,32 @@ redef class AIfExpr
        end
     end
 
+               redef fun n_kwif=(node)
+               do
+                       _n_kwif = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_then=(node)
+               do
+                       _n_then = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_else=(node)
+               do
+                       _n_else = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwif)
@@ -4167,6 +5183,38 @@ redef class AIfexprExpr
        end
     end
 
+               redef fun n_kwif=(node)
+               do
+                       _n_kwif = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwthen=(node)
+               do
+                       _n_kwthen = node
+                       node.parent = self
+               end
+               redef fun n_then=(node)
+               do
+                       _n_then = node
+                       node.parent = self
+               end
+               redef fun n_kwelse=(node)
+               do
+                       _n_kwelse = node
+                       node.parent = self
+               end
+               redef fun n_else=(node)
+               do
+                       _n_else = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwif)
@@ -4259,6 +5307,37 @@ redef class AWhileExpr
        end
     end
 
+               redef fun n_kwwhile=(node)
+               do
+                       _n_kwwhile = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwdo=(node)
+               do
+                       _n_kwdo = node
+                       node.parent = self
+               end
+               redef fun n_block=(node)
+               do
+                       _n_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_label=(node)
+               do
+                       _n_label = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwwhile)
@@ -4328,6 +5407,27 @@ redef class ALoopExpr
        end
     end
 
+               redef fun n_kwloop=(node)
+               do
+                       _n_kwloop = node
+                       node.parent = self
+               end
+               redef fun n_block=(node)
+               do
+                       _n_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_label=(node)
+               do
+                       _n_label = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwloop)
@@ -4439,6 +5539,37 @@ redef class AForExpr
        end
     end
 
+               redef fun n_kwfor=(node)
+               do
+                       _n_kwfor = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwdo=(node)
+               do
+                       _n_kwdo = node
+                       node.parent = self
+               end
+               redef fun n_block=(node)
+               do
+                       _n_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_label=(node)
+               do
+                       _n_label = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwfor)
@@ -4524,6 +5655,32 @@ redef class AAssertExpr
        end
     end
 
+               redef fun n_kwassert=(node)
+               do
+                       _n_kwassert = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_else=(node)
+               do
+                       _n_else = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwassert)
@@ -4575,6 +5732,18 @@ redef class AOnceExpr
        end
     end
 
+               redef fun n_kwonce=(node)
+               do
+                       _n_kwonce = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwonce)
@@ -4607,6 +5776,13 @@ redef class ASendExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4651,6 +5827,18 @@ redef class ABinopExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4696,6 +5884,18 @@ redef class AOrExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4741,6 +5941,18 @@ redef class AAndExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4786,44 +5998,56 @@ redef class AOrElseExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
         v.enter_visit(_n_expr2)
     end
 end
-redef class ANotExpr
+redef class AImpliesExpr
     private init empty_init do end
 
-    init init_anotexpr (
-            n_kwnot: nullable TKwnot,
-            n_expr: nullable AExpr
+    init init_aimpliesexpr (
+            n_expr: nullable AExpr,
+            n_expr2: nullable AExpr
     )
     do
         empty_init
-        _n_kwnot = n_kwnot.as(not null)
-       n_kwnot.parent = self
         _n_expr = n_expr.as(not null)
        n_expr.parent = self
+        _n_expr2 = n_expr2.as(not null)
+       n_expr2.parent = self
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_kwnot == old_child then
+        if _n_expr == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TKwnot
-                _n_kwnot = new_child
+               assert new_child isa AExpr
+                _n_expr = new_child
            else
                abort
             end
             return
        end
-        if _n_expr == old_child then
+        if _n_expr2 == old_child then
             if new_child != null then
                 new_child.parent = self
                assert new_child isa AExpr
-                _n_expr = new_child
+                _n_expr2 = new_child
            else
                abort
             end
@@ -4831,44 +6055,56 @@ redef class ANotExpr
        end
     end
 
-    redef fun visit_all(v: Visitor)
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
+    redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_kwnot)
         v.enter_visit(_n_expr)
+        v.enter_visit(_n_expr2)
     end
 end
-redef class AEqExpr
+redef class ANotExpr
     private init empty_init do end
 
-    init init_aeqexpr (
-            n_expr: nullable AExpr,
-            n_expr2: nullable AExpr
+    init init_anotexpr (
+            n_kwnot: nullable TKwnot,
+            n_expr: nullable AExpr
     )
     do
         empty_init
+        _n_kwnot = n_kwnot.as(not null)
+       n_kwnot.parent = self
         _n_expr = n_expr.as(not null)
        n_expr.parent = self
-        _n_expr2 = n_expr2.as(not null)
-       n_expr2.parent = self
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_expr == old_child then
+        if _n_kwnot == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa AExpr
-                _n_expr = new_child
+               assert new_child isa TKwnot
+                _n_kwnot = new_child
            else
                abort
             end
             return
        end
-        if _n_expr2 == old_child then
+        if _n_expr == old_child then
             if new_child != null then
                 new_child.parent = self
                assert new_child isa AExpr
-                _n_expr2 = new_child
+                _n_expr = new_child
            else
                abort
             end
@@ -4876,16 +6112,28 @@ redef class AEqExpr
        end
     end
 
+               redef fun n_kwnot=(node)
+               do
+                       _n_kwnot = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
+        v.enter_visit(_n_kwnot)
         v.enter_visit(_n_expr)
-        v.enter_visit(_n_expr2)
     end
 end
-redef class AEeExpr
+redef class AEqExpr
     private init empty_init do end
 
-    init init_aeeexpr (
+    init init_aeqexpr (
             n_expr: nullable AExpr,
             n_expr2: nullable AExpr
     )
@@ -4921,6 +6169,18 @@ redef class AEeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4966,6 +6226,18 @@ redef class ANeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5011,6 +6283,18 @@ redef class ALtExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5056,6 +6340,18 @@ redef class ALeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5101,6 +6397,18 @@ redef class ALlExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5146,6 +6454,18 @@ redef class AGtExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5191,6 +6511,18 @@ redef class AGeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5236,6 +6568,18 @@ redef class AGgExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5281,6 +6625,18 @@ redef class AIsaExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5326,6 +6682,18 @@ redef class APlusExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5371,6 +6739,18 @@ redef class AMinusExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5416,6 +6796,18 @@ redef class AStarshipExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5461,6 +6853,18 @@ redef class AStarExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5506,6 +6910,18 @@ redef class ASlashExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5551,6 +6967,18 @@ redef class APercentExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5596,6 +7024,18 @@ redef class AUminusExpr
        end
     end
 
+               redef fun n_minus=(node)
+               do
+                       _n_minus = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_minus)
@@ -5669,6 +7109,30 @@ redef class ANewExpr
        end
     end
 
+               redef fun n_kwnew=(node)
+               do
+                       _n_kwnew = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwnew)
@@ -5718,6 +7182,18 @@ redef class AAttrExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5789,6 +7265,28 @@ redef class AAttrAssignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5862,6 +7360,28 @@ redef class AAttrReassignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5876,8 +7396,7 @@ redef class ACallExpr
     init init_acallexpr (
             n_expr: nullable AExpr,
             n_id: nullable TId,
-            n_args: nullable AExprs,
-            n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
+            n_args: nullable AExprs
     )
     do
         empty_init
@@ -5887,11 +7406,6 @@ redef class ACallExpr
        n_id.parent = self
         _n_args = n_args.as(not null)
        n_args.parent = self
-       for n in n_closure_defs do
-               assert n isa AClosureDef
-               _n_closure_defs.add(n)
-               n.parent = self
-       end
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -5926,28 +7440,30 @@ redef class ACallExpr
             end
             return
        end
-        for i in [0.._n_closure_defs.length[ do
-            if _n_closure_defs[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDef
-                    _n_closure_defs[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_defs.remove_at(i)
-                end
-                return
-            end
-        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
         v.enter_visit(_n_id)
         v.enter_visit(_n_args)
-            for n in _n_closure_defs do
-                v.enter_visit(n)
-           end
     end
 end
 redef class ACallAssignExpr
@@ -6028,6 +7544,33 @@ redef class ACallAssignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6115,6 +7658,33 @@ redef class ACallReassignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6178,6 +7748,25 @@ redef class ASuperExpr
        end
     end
 
+               redef fun n_qualified=(node)
+               do
+                       _n_qualified = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwsuper=(node)
+               do
+                       _n_kwsuper = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_qualified != null then
@@ -6239,6 +7828,23 @@ redef class AInitExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwinit=(node)
+               do
+                       _n_kwinit = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6251,8 +7857,7 @@ redef class ABraExpr
 
     init init_abraexpr (
             n_expr: nullable AExpr,
-            n_args: nullable AExprs,
-            n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
+            n_args: nullable AExprs
     )
     do
         empty_init
@@ -6260,11 +7865,6 @@ redef class ABraExpr
        n_expr.parent = self
         _n_args = n_args.as(not null)
        n_args.parent = self
-       for n in n_closure_defs do
-               assert n isa AClosureDef
-               _n_closure_defs.add(n)
-               n.parent = self
-       end
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
@@ -6289,27 +7889,24 @@ redef class ABraExpr
             end
             return
        end
-        for i in [0.._n_closure_defs.length[ do
-            if _n_closure_defs[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDef
-                    _n_closure_defs[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_defs.remove_at(i)
-                end
-                return
-            end
-        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
         v.enter_visit(_n_args)
-            for n in _n_closure_defs do
-                v.enter_visit(n)
-           end
     end
 end
 redef class ABraAssignExpr
@@ -6377,6 +7974,28 @@ redef class ABraAssignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6450,6 +8069,28 @@ redef class ABraReassignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6458,72 +8099,6 @@ redef class ABraReassignExpr
         v.enter_visit(_n_value)
     end
 end
-redef class AClosureCallExpr
-    private init empty_init do end
-
-    init init_aclosurecallexpr (
-            n_id: nullable TId,
-            n_args: nullable AExprs,
-            n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
-    )
-    do
-        empty_init
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-        _n_args = n_args.as(not null)
-       n_args.parent = self
-       for n in n_closure_defs do
-               assert n isa AClosureDef
-               _n_closure_defs.add(n)
-               n.parent = self
-       end
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_args == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExprs
-                _n_args = new_child
-           else
-               abort
-            end
-            return
-       end
-        for i in [0.._n_closure_defs.length[ do
-            if _n_closure_defs[i] == old_child then
-                if new_child != null then
-                   assert new_child isa AClosureDef
-                    _n_closure_defs[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_closure_defs.remove_at(i)
-                end
-                return
-            end
-        end
-    end
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_id)
-        v.enter_visit(_n_args)
-            for n in _n_closure_defs do
-                v.enter_visit(n)
-           end
-    end
-end
 redef class AVarExpr
     private init empty_init do end
 
@@ -6550,6 +8125,13 @@ redef class AVarExpr
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -6607,6 +8189,23 @@ redef class AVarAssignExpr
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -6666,6 +8265,23 @@ redef class AVarReassignExpr
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -6727,6 +8343,25 @@ redef class ARangeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6816,6 +8451,35 @@ redef class ACrangeExpr
        end
     end
 
+               redef fun n_obra=(node)
+               do
+                       _n_obra = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+               redef fun n_cbra=(node)
+               do
+                       _n_cbra = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_obra)
@@ -6907,6 +8571,35 @@ redef class AOrangeExpr
        end
     end
 
+               redef fun n_obra=(node)
+               do
+                       _n_obra = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+               redef fun n_cbra=(node)
+               do
+                       _n_cbra = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_obra)
@@ -6959,6 +8652,20 @@ redef class AArrayExpr
        end
     end
 
+               redef fun n_exprs=(node)
+               do
+                       _n_exprs = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_exprs)
@@ -7008,6 +8715,20 @@ redef class ASelfExpr
        end
     end
 
+               redef fun n_kwself=(node)
+               do
+                       _n_kwself = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwself)
@@ -7028,6 +8749,8 @@ redef class AImplicitSelfExpr
     do
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
     end
@@ -7073,6 +8796,20 @@ redef class ATrueExpr
        end
     end
 
+               redef fun n_kwtrue=(node)
+               do
+                       _n_kwtrue = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwtrue)
@@ -7122,6 +8859,20 @@ redef class AFalseExpr
        end
     end
 
+               redef fun n_kwfalse=(node)
+               do
+                       _n_kwfalse = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwfalse)
@@ -7171,6 +8922,20 @@ redef class ANullExpr
        end
     end
 
+               redef fun n_kwnull=(node)
+               do
+                       _n_kwnull = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwnull)
@@ -7220,6 +8985,20 @@ redef class AIntExpr
        end
     end
 
+               redef fun n_number=(node)
+               do
+                       _n_number = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_number)
@@ -7269,6 +9048,20 @@ redef class AFloatExpr
        end
     end
 
+               redef fun n_float=(node)
+               do
+                       _n_float = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_float)
@@ -7318,6 +9111,20 @@ redef class ACharExpr
        end
     end
 
+               redef fun n_char=(node)
+               do
+                       _n_char = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_char)
@@ -7367,6 +9174,20 @@ redef class AStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_string)
@@ -7401,6 +9222,13 @@ redef class AStartStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_string)
@@ -7432,6 +9260,13 @@ redef class AMidStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_string)
@@ -7463,6 +9298,13 @@ redef class AEndStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_string)
@@ -7514,6 +9356,15 @@ redef class ASuperstringExpr
        end
     end
 
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_exprs do
@@ -7591,6 +9442,30 @@ redef class AParExpr
        end
     end
 
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       node.parent = self
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_opar)
@@ -7679,6 +9554,33 @@ redef class AAsCastExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -7779,6 +9681,38 @@ redef class AAsNotnullExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_kwnot=(node)
+               do
+                       _n_kwnot = node
+                       node.parent = self
+               end
+               redef fun n_kwnull=(node)
+               do
+                       _n_kwnull = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -7841,6 +9775,23 @@ redef class AIssetAttrExpr
        end
     end
 
+               redef fun n_kwisset=(node)
+               do
+                       _n_kwisset = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwisset)
@@ -7913,6 +9864,28 @@ redef class ADebugTypeExpr
        end
     end
 
+               redef fun n_kwdebug=(node)
+               do
+                       _n_kwdebug = node
+                       node.parent = self
+               end
+               redef fun n_kwtype=(node)
+               do
+                       _n_kwtype = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwdebug)
@@ -7952,6 +9925,8 @@ redef class AListExprs
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_exprs do
@@ -8016,6 +9991,18 @@ redef class AParExprs
        end
     end
 
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_opar)
@@ -8082,6 +10069,18 @@ redef class ABraExprs
        end
     end
 
+               redef fun n_obra=(node)
+               do
+                       _n_obra = node
+                       node.parent = self
+               end
+               redef fun n_cbra=(node)
+               do
+                       _n_cbra = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_obra)
@@ -8117,6 +10116,13 @@ redef class APlusAssignOp
        end
     end
 
+               redef fun n_pluseq=(node)
+               do
+                       _n_pluseq = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_pluseq)
@@ -8148,191 +10154,16 @@ redef class AMinusAssignOp
        end
     end
 
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_minuseq)
-    end
-end
-redef class AClosureDef
-    private init empty_init do end
-
-    init init_aclosuredef (
-            n_bang: nullable TBang,
-            n_id: nullable AClosureId,
-            n_ids: Collection[Object], # Should be Collection[TId]
-            n_kwdo: nullable TKwdo,
-            n_expr: nullable AExpr,
-            n_label: nullable ALabel
-    )
-    do
-        empty_init
-        _n_bang = n_bang.as(not null)
-       n_bang.parent = self
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-       for n in n_ids do
-               assert n isa TId
-               _n_ids.add(n)
-               n.parent = self
-       end
-        _n_kwdo = n_kwdo
-       if n_kwdo != null then
-               n_kwdo.parent = self
-       end
-        _n_expr = n_expr
-       if n_expr != null then
-               n_expr.parent = self
-       end
-        _n_label = n_label
-       if n_label != null then
-               n_label.parent = self
-       end
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_bang == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TBang
-                _n_bang = new_child
-           else
-               abort
-            end
-            return
-       end
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AClosureId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-        for i in [0.._n_ids.length[ do
-            if _n_ids[i] == old_child then
-                if new_child != null then
-                   assert new_child isa TId
-                    _n_ids[i] = new_child
-                    new_child.parent = self
-                else
-                    _n_ids.remove_at(i)
-                end
-                return
-            end
-        end
-        if _n_kwdo == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TKwdo
-                _n_kwdo = new_child
-           else
-               _n_kwdo = null
-            end
-            return
-       end
-        if _n_expr == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa AExpr
-                _n_expr = new_child
-           else
-               _n_expr = null
-            end
-            return
-       end
-        if _n_label == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa ALabel
-                _n_label = new_child
-           else
-               _n_label = null
-            end
-            return
-       end
-    end
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_bang)
-        v.enter_visit(_n_id)
-            for n in _n_ids do
-                v.enter_visit(n)
-           end
-        if _n_kwdo != null then
-            v.enter_visit(_n_kwdo.as(not null))
-        end
-        if _n_expr != null then
-            v.enter_visit(_n_expr.as(not null))
-        end
-        if _n_label != null then
-            v.enter_visit(_n_label.as(not null))
-        end
-    end
-end
-redef class ASimpleClosureId
-    private init empty_init do end
-
-    init init_asimpleclosureid (
-            n_id: nullable TId
-    )
-    do
-        empty_init
-        _n_id = n_id.as(not null)
-       n_id.parent = self
-    end
-
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_id == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TId
-                _n_id = new_child
-           else
-               abort
-            end
-            return
-       end
-    end
-
-    redef fun visit_all(v: Visitor)
-    do
-        v.enter_visit(_n_id)
-    end
-end
-redef class ABreakClosureId
-    private init empty_init do end
-
-    init init_abreakclosureid (
-            n_kwbreak: nullable TKwbreak
-    )
-    do
-        empty_init
-        _n_kwbreak = n_kwbreak.as(not null)
-       n_kwbreak.parent = self
-    end
+               redef fun n_minuseq=(node)
+               do
+                       _n_minuseq = node
+                       node.parent = self
+               end
 
-    redef fun replace_child(old_child: ANode, new_child: nullable ANode)
-    do
-        if _n_kwbreak == old_child then
-            if new_child != null then
-                new_child.parent = self
-               assert new_child isa TKwbreak
-                _n_kwbreak = new_child
-           else
-               abort
-            end
-            return
-       end
-    end
 
     redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_kwbreak)
+        v.enter_visit(_n_minuseq)
     end
 end
 redef class AModuleName
@@ -8394,6 +10225,20 @@ redef class AModuleName
        end
     end
 
+               redef fun n_quad=(node)
+               do
+                       _n_quad = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_quad != null then
@@ -8449,6 +10294,13 @@ redef class AExternCalls
         end
     end
 
+               redef fun n_kwimport=(node)
+               do
+                       _n_kwimport = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwimport)
@@ -8469,6 +10321,8 @@ redef class AExternCall
     do
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
     end
@@ -8499,6 +10353,13 @@ redef class ASuperExternCall
        end
     end
 
+               redef fun n_kwsuper=(node)
+               do
+                       _n_kwsuper = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwsuper)
@@ -8530,6 +10391,13 @@ redef class ALocalPropExternCall
        end
     end
 
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_methid)
@@ -8539,17 +10407,17 @@ redef class AFullPropExternCall
     private init empty_init do end
 
     init init_afullpropexterncall (
-            n_classid: nullable TClassid,
-            n_quad: nullable TQuad,
+            n_type: nullable AType,
+            n_dot: nullable TDot,
             n_methid: nullable AMethid
     )
     do
         empty_init
-        _n_classid = n_classid.as(not null)
-       n_classid.parent = self
-        _n_quad = n_quad
-       if n_quad != null then
-               n_quad.parent = self
+        _n_type = n_type.as(not null)
+       n_type.parent = self
+        _n_dot = n_dot
+       if n_dot != null then
+               n_dot.parent = self
        end
         _n_methid = n_methid.as(not null)
        n_methid.parent = self
@@ -8557,23 +10425,23 @@ redef class AFullPropExternCall
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_classid == old_child then
+        if _n_type == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TClassid
-                _n_classid = new_child
+               assert new_child isa AType
+                _n_type = new_child
            else
                abort
             end
             return
        end
-        if _n_quad == old_child then
+        if _n_dot == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TQuad
-                _n_quad = new_child
+               assert new_child isa TDot
+                _n_dot = new_child
            else
-               _n_quad = null
+               _n_dot = null
             end
             return
        end
@@ -8589,11 +10457,30 @@ redef class AFullPropExternCall
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_dot=(node)
+               do
+                       _n_dot = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_classid)
-        if _n_quad != null then
-            v.enter_visit(_n_quad.as(not null))
+        v.enter_visit(_n_type)
+        if _n_dot != null then
+            v.enter_visit(_n_dot.as(not null))
         end
         v.enter_visit(_n_methid)
     end
@@ -8602,21 +10489,21 @@ redef class AInitPropExternCall
     private init empty_init do end
 
     init init_ainitpropexterncall (
-            n_classid: nullable TClassid
+            n_type: nullable AType
     )
     do
         empty_init
-        _n_classid = n_classid.as(not null)
-       n_classid.parent = self
+        _n_type = n_type.as(not null)
+       n_type.parent = self
     end
 
     redef fun replace_child(old_child: ANode, new_child: nullable ANode)
     do
-        if _n_classid == old_child then
+        if _n_type == old_child then
             if new_child != null then
                 new_child.parent = self
-               assert new_child isa TClassid
-                _n_classid = new_child
+               assert new_child isa AType
+                _n_type = new_child
            else
                abort
             end
@@ -8624,9 +10511,16 @@ redef class AInitPropExternCall
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
-        v.enter_visit(_n_classid)
+        v.enter_visit(_n_type)
     end
 end
 redef class ACastAsExternCall
@@ -8634,6 +10528,7 @@ redef class ACastAsExternCall
 
     init init_acastasexterncall (
             n_from_type: nullable AType,
+            n_dot: nullable TDot,
             n_kwas: nullable TKwas,
             n_to_type: nullable AType
     )
@@ -8641,6 +10536,10 @@ redef class ACastAsExternCall
         empty_init
         _n_from_type = n_from_type.as(not null)
        n_from_type.parent = self
+        _n_dot = n_dot
+       if n_dot != null then
+               n_dot.parent = self
+       end
         _n_kwas = n_kwas.as(not null)
        n_kwas.parent = self
         _n_to_type = n_to_type.as(not null)
@@ -8659,6 +10558,16 @@ redef class ACastAsExternCall
             end
             return
        end
+        if _n_dot == old_child then
+            if new_child != null then
+                new_child.parent = self
+               assert new_child isa TDot
+                _n_dot = new_child
+           else
+               _n_dot = null
+            end
+            return
+       end
         if _n_kwas == old_child then
             if new_child != null then
                 new_child.parent = self
@@ -8681,9 +10590,36 @@ redef class ACastAsExternCall
        end
     end
 
+               redef fun n_from_type=(node)
+               do
+                       _n_from_type = node
+                       node.parent = self
+               end
+               redef fun n_dot=(node)
+               do
+                       _n_dot = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_to_type=(node)
+               do
+                       _n_to_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_from_type)
+        if _n_dot != null then
+            v.enter_visit(_n_dot.as(not null))
+        end
         v.enter_visit(_n_kwas)
         v.enter_visit(_n_to_type)
     end
@@ -8740,6 +10676,23 @@ redef class AAsNullableExternCall
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_kwnullable=(node)
+               do
+                       _n_kwnullable = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_type)
@@ -8812,6 +10765,28 @@ redef class AAsNotNullableExternCall
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_kwnot=(node)
+               do
+                       _n_kwnot = node
+                       node.parent = self
+               end
+               redef fun n_kwnullable=(node)
+               do
+                       _n_kwnullable = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_type)
@@ -8859,6 +10834,18 @@ redef class AInLanguage
        end
     end
 
+               redef fun n_kwin=(node)
+               do
+                       _n_kwin = node
+                       node.parent = self
+               end
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwin)
@@ -8906,6 +10893,20 @@ redef class AExternCodeBlock
        end
     end
 
+               redef fun n_in_language=(node)
+               do
+                       _n_in_language = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_extern_code_segment=(node)
+               do
+                       _n_extern_code_segment = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_in_language != null then
@@ -8960,6 +10961,15 @@ redef class AQualified
        end
     end
 
+               redef fun n_classid=(node)
+               do
+                       _n_classid = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_id do
@@ -9001,6 +11011,8 @@ redef class ADoc
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_comment do
@@ -9084,6 +11096,29 @@ redef class AAnnotations
        end
     end
 
+               redef fun n_at=(node)
+               do
+                       _n_at = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_at != null then
@@ -9189,6 +11224,34 @@ redef class AAnnotation
        end
     end
 
+               redef fun n_atid=(node)
+               do
+                       _n_atid = node
+                       node.parent = self
+               end
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_atid)
@@ -9232,6 +11295,13 @@ redef class ATypeAtArg
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_type)
@@ -9263,6 +11333,13 @@ redef class AExprAtArg
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -9294,6 +11371,13 @@ redef class AAtAtArg
        end
     end
 
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_annotations)
@@ -9325,6 +11409,13 @@ redef class AIdAtid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -9356,6 +11447,13 @@ redef class AKwexternAtid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -9387,6 +11485,13 @@ redef class AKwinternAtid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -9418,6 +11523,13 @@ redef class AKwreadableAtid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -9449,6 +11561,13 @@ redef class AKwwritableAtid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -9480,6 +11599,13 @@ redef class AKwimportAtid
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)