parser: Add 'fun' and 'var'-as-attr keyword
[nit.git] / src / parser / parser.nit
index 492ea9b..4ada113 100644 (file)
@@ -812,7 +812,77 @@ special ParserTable
                        new ReduceAction650,
                        new ReduceAction651,
                        new ReduceAction652,
-                       new ReduceAction653
+                       new ReduceAction653,
+                       new ReduceAction654,
+                       new ReduceAction655,
+                       new ReduceAction656,
+                       new ReduceAction657,
+                       new ReduceAction658,
+                       new ReduceAction659,
+                       new ReduceAction660,
+                       new ReduceAction661,
+                       new ReduceAction662,
+                       new ReduceAction663,
+                       new ReduceAction664,
+                       new ReduceAction665,
+                       new ReduceAction666,
+                       new ReduceAction667,
+                       new ReduceAction668,
+                       new ReduceAction669,
+                       new ReduceAction670,
+                       new ReduceAction671,
+                       new ReduceAction672,
+                       new ReduceAction673,
+                       new ReduceAction674,
+                       new ReduceAction675,
+                       new ReduceAction676,
+                       new ReduceAction677,
+                       new ReduceAction678,
+                       new ReduceAction679,
+                       new ReduceAction680,
+                       new ReduceAction681,
+                       new ReduceAction682,
+                       new ReduceAction683,
+                       new ReduceAction684,
+                       new ReduceAction685,
+                       new ReduceAction686,
+                       new ReduceAction687,
+                       new ReduceAction688,
+                       new ReduceAction689,
+                       new ReduceAction690,
+                       new ReduceAction691,
+                       new ReduceAction692,
+                       new ReduceAction693,
+                       new ReduceAction694,
+                       new ReduceAction695,
+                       new ReduceAction696,
+                       new ReduceAction697,
+                       new ReduceAction698,
+                       new ReduceAction699,
+                       new ReduceAction700,
+                       new ReduceAction701,
+                       new ReduceAction702,
+                       new ReduceAction703,
+                       new ReduceAction704,
+                       new ReduceAction705,
+                       new ReduceAction706,
+                       new ReduceAction707,
+                       new ReduceAction708,
+                       new ReduceAction709,
+                       new ReduceAction710,
+                       new ReduceAction711,
+                       new ReduceAction712,
+                       new ReduceAction713,
+                       new ReduceAction714,
+                       new ReduceAction715,
+                       new ReduceAction716,
+                       new ReduceAction717,
+                       new ReduceAction718,
+                       new ReduceAction719,
+                       new ReduceAction720,
+                       new ReduceAction721,
+                       new ReduceAction722,
+                       new ReduceAction723
                )
        end
 end
@@ -4735,6 +4805,3145 @@ special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction91
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction92
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction93
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction94
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction95
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction96
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction97
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction98
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction99
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction100
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction101
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction102
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist5
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction103
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction104
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction105
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction106
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction107
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction108
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction109
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction110
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist3
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               null,
+                                               tattridnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction111
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction112
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction113
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction114
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction115
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist8
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction116
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction117
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction118
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction119
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist4
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               null,
+                                               tattridnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction120
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist5
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist7
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction121
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction122
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction123
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction124
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction125
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction126
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction127
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction128
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist3
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist5
+                                       assert ptypenode10 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               null,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction129
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction130
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction131
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction132
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction133
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist8
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist10
+                                       assert ptypenode14 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction134
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction135
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction136
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction137
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist4
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa PType
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               null,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction138
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist5
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist9
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction139
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction140
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction141
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction142
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction143
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction144
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist4
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction145
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction146
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist3
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               null,
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction147
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist6
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction148
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction149
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction150
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist7
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction151
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwattrnode11 = nodearraylist8
+                                       assert tkwattrnode11 isa TKwattr
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction152
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction153
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist5
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction154
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwattrnode9 = nodearraylist6
+                                       assert tkwattrnode9 isa TKwattr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction155
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwattrnode7 = nodearraylist4
+                                       assert tkwattrnode7 isa TKwattr
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               null,
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction156
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -4759,8 +7968,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist7
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -4768,20 +7981,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction91
+private class ReduceAction157
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -4809,8 +8027,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -4818,20 +8040,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction92
+private class ReduceAction158
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -4849,8 +8076,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -4858,20 +8089,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction93
+private class ReduceAction159
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -4899,8 +8135,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -4908,20 +8148,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction94
+private class ReduceAction160
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -4952,8 +8197,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -4961,20 +8210,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction95
+private class ReduceAction161
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -4995,8 +8249,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -5004,20 +8262,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction96
+private class ReduceAction162
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -5035,8 +8298,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -5044,20 +8311,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction97
+private class ReduceAction163
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -5078,8 +8350,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -5087,20 +8363,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction98
+private class ReduceAction164
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
@@ -5111,8 +8392,12 @@ special ReduceAction
                                        assert pvisibilitynode6 isa PVisibility
                                        var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa TAttrid
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist5
+                                       assert ptypenode10 isa PType
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -5120,20 +8405,25 @@ special ReduceAction
                                                null,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
                                                null,
-                                               null
+                                               tattridnode9,
+                                               ptypenode10,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction99
+private class ReduceAction165
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -5161,8 +8451,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -5170,20 +8464,25 @@ special ReduceAction
                                                tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction100
+private class ReduceAction166
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -5214,8 +8513,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -5223,20 +8526,25 @@ special ReduceAction
                                                tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction101
+private class ReduceAction167
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -5257,8 +8565,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -5266,20 +8578,25 @@ special ReduceAction
                                                tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction102
+private class ReduceAction168
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -5310,8 +8627,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -5319,20 +8640,25 @@ special ReduceAction
                                                tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction103
+private class ReduceAction169
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -5366,8 +8692,12 @@ special ReduceAction
                                        assert pvisibilitynode10 isa PVisibility
                                        var tkwattrnode11 = nodearraylist8
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist10
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist13
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -5375,20 +8705,25 @@ special ReduceAction
                                                tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               null
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction104
+private class ReduceAction170
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -5412,8 +8747,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist11
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -5421,20 +8760,25 @@ special ReduceAction
                                                tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction105
+private class ReduceAction171
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -5455,8 +8799,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -5464,20 +8812,25 @@ special ReduceAction
                                                tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction106
+private class ReduceAction172
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -5501,8 +8854,12 @@ special ReduceAction
                                        assert pvisibilitynode8 isa PVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist11
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -5510,20 +8867,25 @@ special ReduceAction
                                                tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               null
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction107
+private class ReduceAction173
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -5537,8 +8899,12 @@ special ReduceAction
                                        assert pvisibilitynode6 isa PVisibility
                                        var tkwattrnode7 = nodearraylist4
                                        assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa TAttrid
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa PType
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -5546,21 +8912,21 @@ special ReduceAction
                                                tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
                                                null,
-                                               null
+                                               tattridnode9,
+                                               ptypenode10,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction108
+private class ReduceAction174
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -5583,21 +8949,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist4
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist5
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist7
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist5
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5605,12 +8970,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction109
+private class ReduceAction175
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -5636,21 +9000,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5658,12 +9021,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction110
+private class ReduceAction176
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -5679,21 +9041,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5701,12 +9062,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction111
+private class ReduceAction177
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -5732,21 +9092,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5754,12 +9113,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction112
+private class ReduceAction178
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -5788,21 +9146,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5810,12 +9167,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction113
+private class ReduceAction179
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -5834,21 +9190,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5856,12 +9211,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction114
+private class ReduceAction180
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -5877,21 +9231,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5899,12 +9252,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction115
+private class ReduceAction181
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -5923,21 +9275,20 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5945,12 +9296,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction116
+private class ReduceAction182
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
@@ -5959,21 +9309,20 @@ special ReduceAction
                                        assert pdocnode2 isa PDoc
                                        var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist3
-                                       assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa TAttrid
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
+                                       var tkwvarnode8 = nodearraylist3
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
                                                null,
                                                pvisibilitynode6,
-                                               tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5981,12 +9330,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction117
+private class ReduceAction183
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -6012,21 +9360,20 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6034,12 +9381,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction118
+private class ReduceAction184
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -6068,21 +9414,20 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6090,12 +9435,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction119
+private class ReduceAction185
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -6114,21 +9458,20 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6136,12 +9479,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction120
+private class ReduceAction186
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -6170,21 +9512,20 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6192,12 +9533,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction121
+private class ReduceAction187
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -6229,21 +9569,20 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist7
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist8
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist10
-                                       assert ptypenode13 isa PType
+                                       var tkwvarnode12 = nodearraylist8
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6251,12 +9590,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction122
+private class ReduceAction188
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -6278,21 +9616,20 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6300,12 +9637,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction123
+private class ReduceAction189
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -6324,21 +9660,20 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6346,12 +9681,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction124
+private class ReduceAction190
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -6373,21 +9707,20 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa PType
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6395,12 +9728,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction125
+private class ReduceAction191
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -6412,21 +9744,20 @@ special ReduceAction
                                        assert tkwredefnode5 isa TKwredef
                                        var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist4
-                                       assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa TAttrid
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
+                                       var tkwvarnode8 = nodearraylist4
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
                                                tkwredefnode5,
                                                pvisibilitynode6,
-                                               tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6434,13 +9765,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction126
+private class ReduceAction192
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -6464,35 +9793,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist4
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist5
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist9
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist5
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist7
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction127
+private class ReduceAction193
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -6519,35 +9847,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction128
+private class ReduceAction194
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -6564,35 +9891,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction129
+private class ReduceAction195
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -6619,35 +9945,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction130
+private class ReduceAction196
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -6677,35 +10002,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction131
+private class ReduceAction197
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -6725,35 +10049,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction132
+private class ReduceAction198
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -6770,35 +10093,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction133
+private class ReduceAction199
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -6818,35 +10140,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction134
+private class ReduceAction200
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -6856,35 +10177,34 @@ special ReduceAction
                                        assert pdocnode2 isa PDoc
                                        var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist3
-                                       assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa TAttrid
-                                       var pexprnode10 = nodearraylist7
-                                       assert pexprnode10 isa PExpr
+                                       var tkwvarnode8 = nodearraylist3
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist5
+                                       assert ptypenode10 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
                                                null,
                                                pvisibilitynode6,
-                                               tkwattrnode7,
-                                               tattridnode8,
                                                null,
-                                               pexprnode10
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction135
+private class ReduceAction201
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -6911,35 +10231,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction136
+private class ReduceAction202
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -6969,35 +10288,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction137
+private class ReduceAction203
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -7017,35 +10335,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction138
+private class ReduceAction204
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -7075,35 +10392,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction139
+private class ReduceAction205
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -7136,35 +10452,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist7
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist8
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist8
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist10
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction140
+private class ReduceAction206
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -7187,35 +10502,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction141
+private class ReduceAction207
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -7235,35 +10549,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction142
+private class ReduceAction208
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -7286,35 +10599,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction143
+private class ReduceAction209
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -7327,34 +10639,34 @@ special ReduceAction
                                        assert tkwredefnode5 isa TKwredef
                                        var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist4
-                                       assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa TAttrid
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa PExpr
+                                       var tkwvarnode8 = nodearraylist4
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
                                                tkwredefnode5,
                                                pvisibilitynode6,
-                                               tkwattrnode7,
-                                               tattridnode8,
                                                null,
-                                               pexprnode10
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction144
+private class ReduceAction210
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -7380,36 +10692,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist4
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist5
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist7
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist5
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist9
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction145
+private class ReduceAction211
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -7438,36 +10748,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction146
+private class ReduceAction212
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -7486,36 +10794,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction147
+private class ReduceAction213
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -7544,36 +10850,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction148
+private class ReduceAction214
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -7605,36 +10909,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                null,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction149
+private class ReduceAction215
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -7656,36 +10958,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction150
+private class ReduceAction216
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -7704,36 +11004,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction151
+private class ReduceAction217
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -7755,36 +11053,34 @@ special ReduceAction
                                        )
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                null,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction152
+private class ReduceAction218
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -7796,36 +11092,34 @@ special ReduceAction
                                        assert pdocnode2 isa PDoc
                                        var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist3
-                                       assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa TAttrid
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa PExpr
+                                       var tkwvarnode8 = nodearraylist3
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
                                                null,
                                                pvisibilitynode6,
-                                               tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               pexprnode10
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction153
+private class ReduceAction219
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -7854,36 +11148,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction154
+private class ReduceAction220
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -7915,36 +11207,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction155
+private class ReduceAction221
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -7966,36 +11256,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction156
+private class ReduceAction222
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
@@ -8027,36 +11315,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction157
+private class ReduceAction223
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist13 = p.pop
                                        var nodearraylist12 = p.pop
                                        var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
@@ -8091,36 +11377,34 @@ special ReduceAction
                                        assert tkwredefnode9 isa TKwredef
                                        var pvisibilitynode10 = nodearraylist7
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist8
-                                       assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist10
-                                       assert ptypenode13 isa PType
-                                       var pexprnode14 = nodearraylist13
-                                       assert pexprnode14 isa PExpr
+                                       var tkwvarnode12 = nodearraylist8
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
                                                tkwredefnode9,
                                                pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction158
+private class ReduceAction224
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -8145,36 +11429,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist11
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction159
+private class ReduceAction225
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -8196,36 +11478,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction160
+private class ReduceAction226
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist11 = p.pop
                                        var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
@@ -8250,36 +11530,34 @@ special ReduceAction
                                        assert tkwredefnode7 isa TKwredef
                                        var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
-                                       assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa PType
-                                       var pexprnode12 = nodearraylist11
-                                       assert pexprnode12 isa PExpr
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
                                                tkwredefnode7,
                                                pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction161
+private class ReduceAction227
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -8294,35 +11572,37 @@ special ReduceAction
                                        assert tkwredefnode5 isa TKwredef
                                        var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist4
-                                       assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa TAttrid
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var pexprnode10 = nodearraylist9
-                                       assert pexprnode10 isa PExpr
+                                       var tkwvarnode8 = nodearraylist4
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
                                                tkwredefnode5,
                                                pvisibilitynode6,
-                                               tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               pexprnode10
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction162
+private class ReduceAction228
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8332,32 +11612,53 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist4
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist5
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist7
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction163
+private class ReduceAction229
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -8368,34 +11669,54 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction164
+private class ReduceAction230
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8405,32 +11726,167 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction231
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction232
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction165
+private class ReduceAction233
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -8441,34 +11897,48 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction166
+private class ReduceAction234
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8478,33 +11948,46 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction167
+private class ReduceAction235
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -8515,31 +11998,42 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction168
+private class ReduceAction236
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -8554,35 +12048,40 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwvarnode8 = nodearraylist3
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist5
+                                       assert ptypenode10 isa PType
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction169
+private class ReduceAction237
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -8594,37 +12093,57 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction170
+private class ReduceAction238
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8634,35 +12153,56 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction171
+private class ReduceAction239
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -8673,37 +12213,50 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction172
+private class ReduceAction240
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -8714,35 +12267,58 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwwritablenode8 = nodearraylist4
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist7
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction173
+private class ReduceAction241
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -8754,37 +12330,61 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var tkwwritablenode8 = nodearraylist5
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
+                                               tkwredefnode7,
+                                               tkwwritablenode8
+                                       )
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist8
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist10
+                                       assert ptypenode14 isa PType
+                                       var pexprnode15 = nodearraylist13
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction174
+private class ReduceAction242
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -8793,33 +12393,51 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist11
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
                                                null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction175
+private class ReduceAction243
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8829,35 +12447,50 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
                                                null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction176
+private class ReduceAction244
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8867,35 +12500,49 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
+                                       )
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist6
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
+                                       var pexprnode13 = nodearraylist11
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction177
+private class ReduceAction245
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -8906,38 +12553,40 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwvarnode8 = nodearraylist4
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa PType
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction178
+private class ReduceAction246
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -8968,12 +12617,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction179
+private class ReduceAction247
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -9007,12 +12655,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction180
+private class ReduceAction248
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -9046,12 +12693,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction181
+private class ReduceAction249
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -9088,90 +12734,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction182
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa PType
-                                       var ppropdefnode1 = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction183
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa PType
-                                       var ppropdefnode1 = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction184
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa PPropdef
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(13), node_list)
-       end
-init do end
-end
-private class ReduceAction185
+private class ReduceAction250
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9187,27 +12750,27 @@ special ReduceAction
                                        assert pdocnode2 isa PDoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa TKwinit
+                                       var psignaturenode7 = nodearraylist4
                                        assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pexprnode8 = nodearraylist6
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
+                                               tkwinitnode5,
+                                               null,
                                                psignaturenode7,
-                                               null
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction186
+private class ReduceAction251
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9226,27 +12789,27 @@ special ReduceAction
                                        assert tkwredefnode3 isa TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
+                                       var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa PSignature
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
+                                               tkwinitnode5,
+                                               null,
                                                psignaturenode7,
-                                               null
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction187
+private class ReduceAction252
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9263,29 +12826,29 @@ special ReduceAction
                                        assert pdocnode2 isa PDoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
+                                       var tkwinitnode5 = nodearraylist3
+                                       assert tkwinitnode5 isa TKwinit
                                        var pmethidnode6 = nodearraylist4
                                        assert pmethidnode6 isa PMethid
                                        var psignaturenode7 = nodearraylist5
                                        assert psignaturenode7 isa PSignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction188
+private class ReduceAction253
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9305,35 +12868,33 @@ special ReduceAction
                                        assert tkwredefnode3 isa TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
                                        var pmethidnode6 = nodearraylist5
                                        assert pmethidnode6 isa PMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa PSignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction189
+private class ReduceAction254
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -9343,35 +12904,30 @@ special ReduceAction
                                        assert pdocnode2 isa PDoc
                                        var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwtypenode5 = nodearraylist3
+                                       assert tkwtypenode5 isa TKwtype
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa TClassid
+                                       var ptypenode7 = nodearraylist5
+                                       assert ptypenode7 isa PType
+                                       var ppropdefnode1 = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction190
+private class ReduceAction255
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -9384,29 +12940,26 @@ special ReduceAction
                                        assert tkwredefnode3 isa TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa PSignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwtypenode5 = nodearraylist4
+                                       assert tkwtypenode5 isa TKwtype
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa TClassid
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa PType
+                                       var ppropdefnode1 = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
                                        )
                                        node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
+                                       p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction191
+private class ReduceAction256
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9414,11 +12967,11 @@ special ReduceAction
                                        var pvisibilitynode1 = new APublicVisibility.init_apublicvisibility(
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(13), node_list)
        end
 init do end
 end
-private class ReduceAction192
+private class ReduceAction257
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9431,11 +12984,11 @@ special ReduceAction
                                                tkwprivatenode2
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(13), node_list)
        end
 init do end
 end
-private class ReduceAction193
+private class ReduceAction258
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9448,11 +13001,11 @@ special ReduceAction
                                                tkwprotectednode2
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(13), node_list)
        end
 init do end
 end
-private class ReduceAction194
+private class ReduceAction259
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9465,11 +13018,11 @@ special ReduceAction
                                                tkwintrudenode2
                                        )
                                        node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
+                                       p.push(p.go_to(13), node_list)
        end
 init do end
 end
-private class ReduceAction195
+private class ReduceAction260
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9481,11 +13034,11 @@ special ReduceAction
                                                tidnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction196
+private class ReduceAction261
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9497,11 +13050,11 @@ special ReduceAction
                                                tplusnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction197
+private class ReduceAction262
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9513,11 +13066,11 @@ special ReduceAction
                                                tminusnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction198
+private class ReduceAction263
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9529,11 +13082,11 @@ special ReduceAction
                                                tstarnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction199
+private class ReduceAction264
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9545,11 +13098,11 @@ special ReduceAction
                                                tslashnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction200
+private class ReduceAction265
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9561,11 +13114,11 @@ special ReduceAction
                                                tpercentnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction201
+private class ReduceAction266
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9577,11 +13130,11 @@ special ReduceAction
                                                teqnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction202
+private class ReduceAction267
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9593,11 +13146,11 @@ special ReduceAction
                                                tnenode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction203
+private class ReduceAction268
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9609,11 +13162,11 @@ special ReduceAction
                                                tlenode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction204
+private class ReduceAction269
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9625,11 +13178,11 @@ special ReduceAction
                                                tgenode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction205
+private class ReduceAction270
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9641,11 +13194,11 @@ special ReduceAction
                                                tltnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction206
+private class ReduceAction271
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9657,11 +13210,11 @@ special ReduceAction
                                                tgtnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction207
+private class ReduceAction272
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9677,11 +13230,11 @@ special ReduceAction
                                                tcbranode3
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction208
+private class ReduceAction273
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9693,11 +13246,11 @@ special ReduceAction
                                                tstarshipnode2
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction209
+private class ReduceAction274
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9713,11 +13266,11 @@ special ReduceAction
                                                tassignnode3
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction210
+private class ReduceAction275
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9737,11 +13290,11 @@ special ReduceAction
                                                tassignnode4
                                        )
                                        node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction211
+private class ReduceAction276
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9764,11 +13317,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction212
+private class ReduceAction277
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9801,11 +13354,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction213
+private class ReduceAction278
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9831,11 +13384,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction214
+private class ReduceAction279
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9871,11 +13424,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction215
+private class ReduceAction280
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9889,11 +13442,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction216
+private class ReduceAction281
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9917,11 +13470,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction217
+private class ReduceAction282
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9938,11 +13491,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction218
+private class ReduceAction283
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9969,11 +13522,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction219
+private class ReduceAction284
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9986,11 +13539,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction220
+private class ReduceAction285
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10013,11 +13566,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction221
+private class ReduceAction286
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10033,11 +13586,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction222
+private class ReduceAction287
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10063,11 +13616,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction223
+private class ReduceAction288
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10084,11 +13637,11 @@ special ReduceAction
                                                listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(19), node_list)
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction224
+private class ReduceAction289
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10115,11 +13668,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(19), node_list)
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction225
+private class ReduceAction290
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10129,11 +13682,11 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(19), node_list)
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction226
+private class ReduceAction291
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10144,11 +13697,11 @@ special ReduceAction
                                        var pparamnode1 = nodearraylist3
                                        assert pparamnode1 isa PParam
                                        node_list = pparamnode1
-                                       p.push(p.go_to(20), node_list)
+                                       p.push(p.go_to(18), node_list)
        end
 init do end
 end
-private class ReduceAction227
+private class ReduceAction292
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10162,11 +13715,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(21), node_list)
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction228
+private class ReduceAction293
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10183,11 +13736,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(21), node_list)
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction229
+private class ReduceAction294
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10207,11 +13760,11 @@ special ReduceAction
                                                tdotdotdotnode4
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(21), node_list)
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction230
+private class ReduceAction295
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10229,11 +13782,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(22), node_list)
+                                       p.push(p.go_to(20), node_list)
        end
 init do end
 end
-private class ReduceAction231
+private class ReduceAction296
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10257,11 +13810,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction232
+private class ReduceAction297
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10288,11 +13841,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction233
+private class ReduceAction298
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10320,11 +13873,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction234
+private class ReduceAction299
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10355,11 +13908,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
-                                       p.push(p.go_to(23), node_list)
+                                       p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction235
+private class ReduceAction300
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10373,11 +13926,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(24), node_list)
+                                       p.push(p.go_to(22), node_list)
        end
 init do end
 end
-private class ReduceAction236
+private class ReduceAction301
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10405,11 +13958,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(24), node_list)
+                                       p.push(p.go_to(22), node_list)
        end
 init do end
 end
-private class ReduceAction237
+private class ReduceAction302
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10422,11 +13975,11 @@ special ReduceAction
                                                listnode2.add(ptypenode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(25), node_list)
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction238
+private class ReduceAction303
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10449,11 +14002,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(25), node_list)
+                                       p.push(p.go_to(23), node_list)
        end
 init do end
 end
-private class ReduceAction239
+private class ReduceAction304
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10464,11 +14017,11 @@ special ReduceAction
                                        var ptypenode1 = nodearraylist3
                                        assert ptypenode1 isa PType
                                        node_list = ptypenode1
-                                       p.push(p.go_to(26), node_list)
+                                       p.push(p.go_to(24), node_list)
        end
 init do end
 end
-private class ReduceAction240
+private class ReduceAction305
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10479,11 +14032,11 @@ special ReduceAction
                                        var ptypenode1 = nodearraylist3
                                        assert ptypenode1 isa PType
                                        node_list = ptypenode1
-                                       p.push(p.go_to(27), node_list)
+                                       p.push(p.go_to(25), node_list)
        end
 init do end
 end
-private class ReduceAction241
+private class ReduceAction306
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10492,11 +14045,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
+                                       p.push(p.go_to(26), node_list)
        end
 init do end
 end
-private class ReduceAction242
+private class ReduceAction307
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10515,11 +14068,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
+                                       p.push(p.go_to(26), node_list)
        end
 init do end
 end
-private class ReduceAction243
+private class ReduceAction308
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10548,34 +14101,42 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(28), node_list)
+                                       p.push(p.go_to(26), node_list)
        end
 init do end
 end
-private class ReduceAction244
+private class ReduceAction309
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(28), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(26), node_list)
        end
 init do end
 end
-private class ReduceAction245
+private class ReduceAction310
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(28), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(26), node_list)
        end
 init do end
 end
-private class ReduceAction246
+private class ReduceAction311
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10585,11 +14146,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(29), node_list)
+                                       p.push(p.go_to(27), node_list)
        end
 init do end
 end
-private class ReduceAction247
+private class ReduceAction312
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10598,11 +14159,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction248
+private class ReduceAction313
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10611,11 +14172,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction249
+private class ReduceAction314
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10628,11 +14189,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction250
+private class ReduceAction315
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10648,11 +14209,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction251
+private class ReduceAction316
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10665,11 +14226,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction252
+private class ReduceAction317
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10685,11 +14246,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction253
+private class ReduceAction318
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10701,11 +14262,11 @@ special ReduceAction
                                                tkwabortnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction254
+private class ReduceAction319
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10718,11 +14279,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction255
+private class ReduceAction320
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10738,11 +14299,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction256
+private class ReduceAction321
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10751,11 +14312,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction257
+private class ReduceAction322
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10764,11 +14325,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction258
+private class ReduceAction323
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10777,11 +14338,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction259
+private class ReduceAction324
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10790,11 +14351,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction260
+private class ReduceAction325
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10803,11 +14364,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction261
+private class ReduceAction326
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10839,11 +14400,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction262
+private class ReduceAction327
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10872,11 +14433,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction263
+private class ReduceAction328
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10918,11 +14479,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction264
+private class ReduceAction329
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10961,11 +14522,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction265
+private class ReduceAction330
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10990,11 +14551,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction266
+private class ReduceAction331
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11022,11 +14583,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction267
+private class ReduceAction332
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11056,11 +14617,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction268
+private class ReduceAction333
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11087,11 +14648,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(30), node_list)
+                                       p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction269
+private class ReduceAction334
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11104,11 +14665,11 @@ special ReduceAction
                                                listnode2.add(pclosuredefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(31), node_list)
+                                       p.push(p.go_to(29), node_list)
        end
 init do end
 end
-private class ReduceAction270
+private class ReduceAction335
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11131,11 +14692,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(31), node_list)
+                                       p.push(p.go_to(29), node_list)
        end
 init do end
 end
-private class ReduceAction271
+private class ReduceAction336
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11157,11 +14718,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
+                                       p.push(p.go_to(30), node_list)
        end
 init do end
 end
-private class ReduceAction272
+private class ReduceAction337
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11193,11 +14754,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(32), node_list)
+                                       p.push(p.go_to(30), node_list)
        end
 init do end
 end
-private class ReduceAction273
+private class ReduceAction338
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11228,11 +14789,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction274
+private class ReduceAction339
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11273,11 +14834,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction275
+private class ReduceAction340
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11318,11 +14879,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction276
+private class ReduceAction341
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11373,11 +14934,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction277
+private class ReduceAction342
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11397,11 +14958,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction278
+private class ReduceAction343
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11431,11 +14992,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(33), node_list)
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction279
+private class ReduceAction344
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11454,11 +15015,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction280
+private class ReduceAction345
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11480,11 +15041,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction281
+private class ReduceAction346
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11510,11 +15071,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction282
+private class ReduceAction347
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11543,11 +15104,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(34), node_list)
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction283
+private class ReduceAction348
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11573,11 +15134,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction284
+private class ReduceAction349
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11600,11 +15161,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction285
+private class ReduceAction350
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11642,11 +15203,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction286
+private class ReduceAction351
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11681,11 +15242,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction287
+private class ReduceAction352
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11717,11 +15278,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction288
+private class ReduceAction353
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11747,11 +15308,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction289
+private class ReduceAction354
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11774,11 +15335,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction290
+private class ReduceAction355
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11816,11 +15377,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction291
+private class ReduceAction356
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11855,11 +15416,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction292
+private class ReduceAction357
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11891,11 +15452,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction293
+private class ReduceAction358
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11907,11 +15468,11 @@ special ReduceAction
                                                tpluseqnode2
                                        )
                                        node_list = passignopnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction294
+private class ReduceAction359
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11923,11 +15484,11 @@ special ReduceAction
                                                tminuseqnode2
                                        )
                                        node_list = passignopnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction295
+private class ReduceAction360
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11943,11 +15504,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction296
+private class ReduceAction361
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11975,11 +15536,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction297
+private class ReduceAction362
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12003,11 +15564,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction298
+private class ReduceAction363
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12043,11 +15604,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction299
+private class ReduceAction364
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12093,11 +15654,11 @@ special ReduceAction
                                                pexprnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction300
+private class ReduceAction365
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12121,11 +15682,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction301
+private class ReduceAction366
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12150,11 +15711,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction302
+private class ReduceAction367
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12164,22 +15725,22 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction303
+private class ReduceAction368
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist1 = p.pop
                                        node_list = null
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
-private class ReduceAction304
+private class ReduceAction369
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12205,40 +15766,18 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
-       end
-init do end
-end
-private class ReduceAction305
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa PExpr
-                                       var tkwdonode3 = nodearraylist3
-                                       assert tkwdonode3 isa TKwdo
-                                       var pexprnode4 = nodearraylist4
-                                       assert pexprnode4 isa PExpr
-                                       var pexprnode1 = new AForExpr.init_aforexpr(
-                                               pexprnode2,
-                                               tkwdonode3,
-                                               pexprnode4
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
-private class ReduceAction306
+private class ReduceAction370
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -12252,17 +15791,23 @@ special ReduceAction
                                        assert tidnode3 isa TId
                                        var pexprnode4 = nodearraylist7
                                        assert pexprnode4 isa PExpr
-                                       var pexprnode1 = new AForVardeclExpr.init_aforvardeclexpr(
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa TKwdo
+                                       var pexprnode6 = nodearraylist10
+                                       assert pexprnode6 isa PExpr
+                                       var pexprnode1 = new AForExpr.init_aforexpr(
                                                tkwfornode2,
                                                tidnode3,
-                                               pexprnode4
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
-private class ReduceAction307
+private class ReduceAction371
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12279,11 +15824,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction308
+private class ReduceAction372
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12303,11 +15848,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction309
+private class ReduceAction373
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12317,11 +15862,11 @@ special ReduceAction
                                        var tidnode1 = nodearraylist1
                                        assert tidnode1 isa TId
                                        node_list = tidnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction310
+private class ReduceAction374
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12330,11 +15875,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction311
+private class ReduceAction375
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12376,11 +15921,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction312
+private class ReduceAction376
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12419,11 +15964,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction313
+private class ReduceAction377
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12459,11 +16004,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction314
+private class ReduceAction378
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12472,11 +16017,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction315
+private class ReduceAction379
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12513,11 +16058,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction316
+private class ReduceAction380
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12526,11 +16071,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction317
+private class ReduceAction381
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12548,11 +16093,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction318
+private class ReduceAction382
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12570,11 +16115,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction319
+private class ReduceAction383
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12583,11 +16128,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction320
+private class ReduceAction384
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12604,11 +16149,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction321
+private class ReduceAction385
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12617,11 +16162,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction322
+private class ReduceAction386
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12639,11 +16184,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction323
+private class ReduceAction387
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12661,11 +16206,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction324
+private class ReduceAction388
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12683,11 +16228,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction325
+private class ReduceAction389
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12705,11 +16250,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction326
+private class ReduceAction390
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12727,11 +16272,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction327
+private class ReduceAction391
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12749,11 +16294,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction328
+private class ReduceAction392
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12771,11 +16316,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction329
+private class ReduceAction393
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12793,11 +16338,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction330
+private class ReduceAction394
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12815,11 +16360,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction331
+private class ReduceAction395
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12828,11 +16373,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction332
+private class ReduceAction396
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12850,11 +16395,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction333
+private class ReduceAction397
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12872,11 +16417,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction334
+private class ReduceAction398
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12885,11 +16430,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction335
+private class ReduceAction399
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12907,11 +16452,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction336
+private class ReduceAction400
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12929,11 +16474,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction337
+private class ReduceAction401
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12951,11 +16496,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction338
+private class ReduceAction402
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12964,11 +16509,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction339
+private class ReduceAction403
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12985,11 +16530,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction340
+private class ReduceAction404
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13006,11 +16551,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction341
+private class ReduceAction405
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13019,11 +16564,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction342
+private class ReduceAction406
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13053,11 +16598,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction343
+private class ReduceAction407
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13075,11 +16620,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction344
+private class ReduceAction408
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13094,11 +16639,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction345
+private class ReduceAction409
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13130,11 +16675,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction346
+private class ReduceAction410
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13163,11 +16708,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction347
+private class ReduceAction411
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13192,11 +16737,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction348
+private class ReduceAction412
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13224,11 +16769,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction349
+private class ReduceAction413
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13258,11 +16803,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction350
+private class ReduceAction414
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13289,11 +16834,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction351
+private class ReduceAction415
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13319,11 +16864,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction352
+private class ReduceAction416
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13358,11 +16903,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction353
+private class ReduceAction417
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13385,11 +16930,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction354
+private class ReduceAction418
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13412,11 +16957,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction355
+private class ReduceAction419
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13436,11 +16981,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction356
+private class ReduceAction420
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13452,11 +16997,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction357
+private class ReduceAction421
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13468,11 +17013,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction358
+private class ReduceAction422
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13484,11 +17029,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction359
+private class ReduceAction423
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13500,11 +17045,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction360
+private class ReduceAction424
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13516,11 +17061,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction361
+private class ReduceAction425
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13532,11 +17077,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction362
+private class ReduceAction426
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13548,11 +17093,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction363
+private class ReduceAction427
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13564,11 +17109,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction364
+private class ReduceAction428
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13577,11 +17122,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction365
+private class ReduceAction429
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13592,11 +17137,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction366
+private class ReduceAction430
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13623,11 +17168,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction367
+private class ReduceAction431
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13653,11 +17198,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction368
+private class ReduceAction432
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13693,11 +17238,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction369
+private class ReduceAction433
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13718,11 +17263,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(56), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction370
+private class ReduceAction434
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13734,11 +17279,11 @@ special ReduceAction
                                                tstartstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(57), node_list)
+                                       p.push(p.go_to(54), node_list)
        end
 init do end
 end
-private class ReduceAction371
+private class ReduceAction435
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13759,11 +17304,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(58), node_list)
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction372
+private class ReduceAction436
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13775,11 +17320,11 @@ special ReduceAction
                                                tmidstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(56), node_list)
        end
 init do end
 end
-private class ReduceAction373
+private class ReduceAction437
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13791,11 +17336,11 @@ special ReduceAction
                                                tendstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction374
+private class ReduceAction438
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13812,11 +17357,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction375
+private class ReduceAction439
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13843,11 +17388,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction376
+private class ReduceAction440
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13857,22 +17402,22 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction377
+private class ReduceAction441
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction378
+private class ReduceAction442
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13889,11 +17434,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction379
+private class ReduceAction443
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13920,11 +17465,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction380
+private class ReduceAction444
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13937,11 +17482,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction381
+private class ReduceAction445
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13951,22 +17496,22 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction382
+private class ReduceAction446
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction383
+private class ReduceAction447
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -13983,11 +17528,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(63), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction384
+private class ReduceAction448
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14014,11 +17559,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(63), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction385
+private class ReduceAction449
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14030,11 +17575,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist3
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(64), node_list)
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction386
+private class ReduceAction450
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14047,11 +17592,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(65), node_list)
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction387
+private class ReduceAction451
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14077,11 +17622,11 @@ special ReduceAction
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(65), node_list)
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction388
+private class ReduceAction452
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14095,11 +17640,11 @@ special ReduceAction
                                                tclassidnode3
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(66), node_list)
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction389
+private class ReduceAction453
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14123,11 +17668,11 @@ special ReduceAction
                                                tclassidnode4
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(66), node_list)
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction390
+private class ReduceAction454
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14148,11 +17693,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(66), node_list)
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction391
+private class ReduceAction455
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14163,11 +17708,11 @@ special ReduceAction
                                        var tidnode1 = nodearraylist1
                                        assert tidnode1 isa TId
                                        node_list = tidnode1
-                                       p.push(p.go_to(67), node_list)
+                                       p.push(p.go_to(64), node_list)
        end
 init do end
 end
-private class ReduceAction392
+private class ReduceAction456
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14178,31 +17723,31 @@ special ReduceAction
                                        var tclassidnode1 = nodearraylist1
                                        assert tclassidnode1 isa TClassid
                                        node_list = tclassidnode1
-                                       p.push(p.go_to(68), node_list)
+                                       p.push(p.go_to(65), node_list)
        end
 init do end
 end
-private class ReduceAction393
+private class ReduceAction457
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(69), node_list)
+                                       p.push(p.go_to(66), node_list)
        end
 init do end
 end
-private class ReduceAction394
+private class ReduceAction458
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(69), node_list)
+                                       p.push(p.go_to(66), node_list)
        end
 init do end
 end
-private class ReduceAction395
+private class ReduceAction459
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14222,11 +17767,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pdocnode1
-                                       p.push(p.go_to(70), node_list)
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction396
+private class ReduceAction460
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14246,79 +17791,409 @@ special ReduceAction
                                        var pdocnode1 = new ADoc.init_adoc(
                                                listnode3
                                        )
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(70), node_list)
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(67), node_list)
+       end
+init do end
+end
+private class ReduceAction461
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       node_list = null
+                                       p.push(p.go_to(67), node_list)
+       end
+init do end
+end
+private class ReduceAction462
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       node_list = null
+                                       p.push(p.go_to(68), node_list)
+       end
+init do end
+end
+private class ReduceAction463
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist1
+                                       assert pdocnode1 isa PDoc
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(68), node_list)
+       end
+init do end
+end
+private class ReduceAction464
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction465
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction466
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       p.push(p.go_to(69), node_list)
+       end
+init do end
+end
+private class ReduceAction467
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa PPropdef
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(70), node_list)
+       end
+init do end
+end
+private class ReduceAction468
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
+       end
+init do end
+end
+private class ReduceAction469
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
+       end
+init do end
+end
+private class ReduceAction470
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction397
+private class ReduceAction471
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(70), node_list)
-       end
-init do end
-end
-private class ReduceAction398
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       node_list = null
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction399
+private class ReduceAction472
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode1 = nodearraylist1
-                                       assert pdocnode1 isa PDoc
-                                       node_list = pdocnode1
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction400
+private class ReduceAction473
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(72), node_list)
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction401
+private class ReduceAction474
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(72), node_list)
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction402
+private class ReduceAction475
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(72), node_list)
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa PDoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa PVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa PMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa TString
+                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction403
+private class ReduceAction476
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14332,11 +18207,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction404
+private class ReduceAction477
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14345,11 +18220,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction405
+private class ReduceAction478
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14391,11 +18266,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction406
+private class ReduceAction479
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14434,11 +18309,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction407
+private class ReduceAction480
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14447,11 +18322,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction408
+private class ReduceAction481
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14488,11 +18363,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction409
+private class ReduceAction482
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14501,11 +18376,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction410
+private class ReduceAction483
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14523,11 +18398,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction411
+private class ReduceAction484
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14545,11 +18420,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction412
+private class ReduceAction485
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14558,11 +18433,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction413
+private class ReduceAction486
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14579,11 +18454,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction414
+private class ReduceAction487
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14592,11 +18467,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction415
+private class ReduceAction488
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14614,11 +18489,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction416
+private class ReduceAction489
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14636,11 +18511,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction417
+private class ReduceAction490
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14658,11 +18533,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction418
+private class ReduceAction491
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14680,11 +18555,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction419
+private class ReduceAction492
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14702,11 +18577,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction420
+private class ReduceAction493
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14724,11 +18599,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction421
+private class ReduceAction494
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14746,11 +18621,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction422
+private class ReduceAction495
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14768,11 +18643,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction423
+private class ReduceAction496
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14790,11 +18665,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction424
+private class ReduceAction497
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14803,11 +18678,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction425
+private class ReduceAction498
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14825,11 +18700,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction426
+private class ReduceAction499
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14847,11 +18722,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction427
+private class ReduceAction500
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14860,11 +18735,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction428
+private class ReduceAction501
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14882,11 +18757,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction429
+private class ReduceAction502
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14904,11 +18779,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction430
+private class ReduceAction503
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14926,11 +18801,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction431
+private class ReduceAction504
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14939,11 +18814,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction432
+private class ReduceAction505
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14960,11 +18835,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction433
+private class ReduceAction506
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14981,11 +18856,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction434
+private class ReduceAction507
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -14994,11 +18869,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
-private class ReduceAction435
+private class ReduceAction508
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15028,11 +18903,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
-private class ReduceAction436
+private class ReduceAction509
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15050,11 +18925,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction437
+private class ReduceAction510
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15069,11 +18944,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction438
+private class ReduceAction511
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15105,11 +18980,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction439
+private class ReduceAction512
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15138,11 +19013,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction440
+private class ReduceAction513
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15167,11 +19042,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction441
+private class ReduceAction514
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15199,11 +19074,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction442
+private class ReduceAction515
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15233,11 +19108,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction443
+private class ReduceAction516
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15264,11 +19139,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction444
+private class ReduceAction517
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15303,11 +19178,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction445
+private class ReduceAction518
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15319,11 +19194,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction446
+private class ReduceAction519
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15335,11 +19210,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction447
+private class ReduceAction520
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15351,11 +19226,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction448
+private class ReduceAction521
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15367,11 +19242,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction449
+private class ReduceAction522
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15383,11 +19258,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction450
+private class ReduceAction523
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15399,11 +19274,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction451
+private class ReduceAction524
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15415,11 +19290,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction452
+private class ReduceAction525
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15431,11 +19306,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction453
+private class ReduceAction526
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15444,11 +19319,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction454
+private class ReduceAction527
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15459,11 +19334,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction455
+private class ReduceAction528
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15490,11 +19365,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction456
+private class ReduceAction529
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15503,11 +19378,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction457
+private class ReduceAction530
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15526,11 +19401,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction458
+private class ReduceAction531
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15559,34 +19434,42 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction459
+private class ReduceAction532
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(84), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction460
+private class ReduceAction533
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(84), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction461
+private class ReduceAction534
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15595,11 +19478,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction462
+private class ReduceAction535
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15608,11 +19491,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction463
+private class ReduceAction536
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15625,11 +19508,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction464
+private class ReduceAction537
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15645,11 +19528,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction465
+private class ReduceAction538
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15662,11 +19545,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction466
+private class ReduceAction539
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15682,11 +19565,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction467
+private class ReduceAction540
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15698,11 +19581,11 @@ special ReduceAction
                                                tkwabortnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction468
+private class ReduceAction541
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15715,11 +19598,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction469
+private class ReduceAction542
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15735,11 +19618,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction470
+private class ReduceAction543
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15748,11 +19631,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction471
+private class ReduceAction544
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15761,11 +19644,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction472
+private class ReduceAction545
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15774,11 +19657,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction473
+private class ReduceAction546
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15787,11 +19670,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction474
+private class ReduceAction547
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15800,11 +19683,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction475
+private class ReduceAction548
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15836,11 +19719,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction476
+private class ReduceAction549
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15869,11 +19752,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction477
+private class ReduceAction550
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15915,11 +19798,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction478
+private class ReduceAction551
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15958,11 +19841,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction479
+private class ReduceAction552
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -15987,11 +19870,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction480
+private class ReduceAction553
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16019,11 +19902,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction481
+private class ReduceAction554
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16053,11 +19936,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction482
+private class ReduceAction555
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16084,11 +19967,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction483
+private class ReduceAction556
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16101,11 +19984,11 @@ special ReduceAction
                                                listnode2.add(pclosuredefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(86), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction484
+private class ReduceAction557
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16128,11 +20011,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(86), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction485
+private class ReduceAction558
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16154,11 +20037,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction486
+private class ReduceAction559
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16190,11 +20073,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction487
+private class ReduceAction560
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16213,11 +20096,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction488
+private class ReduceAction561
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16239,11 +20122,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction489
+private class ReduceAction562
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16269,11 +20152,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction490
+private class ReduceAction563
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16302,11 +20185,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction491
+private class ReduceAction564
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16332,11 +20215,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction492
+private class ReduceAction565
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16359,11 +20242,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction493
+private class ReduceAction566
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16401,11 +20284,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction494
+private class ReduceAction567
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16440,11 +20323,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction495
+private class ReduceAction568
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16476,11 +20359,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction496
+private class ReduceAction569
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16506,11 +20389,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction497
+private class ReduceAction570
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16533,11 +20416,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction498
+private class ReduceAction571
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16575,11 +20458,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction499
+private class ReduceAction572
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16614,11 +20497,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction500
+private class ReduceAction573
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16650,11 +20533,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction501
+private class ReduceAction574
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16670,11 +20553,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction502
+private class ReduceAction575
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16702,11 +20585,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(91), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction503
+private class ReduceAction576
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16732,36 +20615,48 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction504
+private class ReduceAction577
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa PExpr
-                                       var tkwdonode3 = nodearraylist3
-                                       assert tkwdonode3 isa TKwdo
-                                       var pexprnode4 = nodearraylist4
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa TId
+                                       var pexprnode4 = nodearraylist7
                                        assert pexprnode4 isa PExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa TKwdo
+                                       var pexprnode6 = nodearraylist10
+                                       assert pexprnode6 isa PExpr
                                        var pexprnode1 = new AForExpr.init_aforexpr(
-                                               pexprnode2,
-                                               tkwdonode3,
-                                               pexprnode4
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction505
+private class ReduceAction578
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16778,11 +20673,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction506
+private class ReduceAction579
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16802,11 +20697,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction507
+private class ReduceAction580
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16815,11 +20710,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction508
+private class ReduceAction581
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16861,11 +20756,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction509
+private class ReduceAction582
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16904,11 +20799,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction510
+private class ReduceAction583
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16944,11 +20839,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction511
+private class ReduceAction584
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -16957,11 +20852,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction512
+private class ReduceAction585
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17003,11 +20898,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction513
+private class ReduceAction586
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17046,61 +20941,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
-       end
-init do end
-end
-private class ReduceAction514
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa TClassid
-                                       var ptypenode1 = new AType.init_atype(
-                                               tclassidnode2,
-                                               listnode3
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(97), node_list)
-       end
-init do end
-end
-private class ReduceAction515
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa TClassid
-                                       var listnode3 = nodearraylist4 
-                                       assert listnode3 isa Array[Object]
-                                       if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-                                       end
-                                       var ptypenode1 = new AType.init_atype(
-                                               tclassidnode2,
-                                               listnode4
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(97), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction516
+private class ReduceAction587
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17109,11 +20954,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction517
+private class ReduceAction588
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17155,11 +21000,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction518
+private class ReduceAction589
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17198,11 +21043,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction519
+private class ReduceAction590
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17211,11 +21056,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction520
+private class ReduceAction591
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17252,11 +21097,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction521
+private class ReduceAction592
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17265,11 +21110,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction522
+private class ReduceAction593
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17287,11 +21132,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction523
+private class ReduceAction594
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17309,11 +21154,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction524
+private class ReduceAction595
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17322,11 +21167,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction525
+private class ReduceAction596
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17343,11 +21188,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction526
+private class ReduceAction597
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17356,11 +21201,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction527
+private class ReduceAction598
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17378,11 +21223,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction528
+private class ReduceAction599
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17400,11 +21245,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction529
+private class ReduceAction600
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17422,11 +21267,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction530
+private class ReduceAction601
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17444,11 +21289,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction531
+private class ReduceAction602
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17466,11 +21311,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction532
+private class ReduceAction603
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17488,11 +21333,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction533
+private class ReduceAction604
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17510,11 +21355,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction534
+private class ReduceAction605
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17532,11 +21377,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction535
+private class ReduceAction606
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17554,11 +21399,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction536
+private class ReduceAction607
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17567,11 +21412,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction537
+private class ReduceAction608
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17589,11 +21434,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction538
+private class ReduceAction609
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17611,11 +21456,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction539
+private class ReduceAction610
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17624,11 +21469,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction540
+private class ReduceAction611
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17646,11 +21491,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction541
+private class ReduceAction612
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17668,11 +21513,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction542
+private class ReduceAction613
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17690,11 +21535,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction543
+private class ReduceAction614
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17703,11 +21548,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction544
+private class ReduceAction615
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17724,11 +21569,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction545
+private class ReduceAction616
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17745,11 +21590,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction546
+private class ReduceAction617
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17758,11 +21603,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction547
+private class ReduceAction618
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17792,11 +21637,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction548
+private class ReduceAction619
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17814,11 +21659,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction549
+private class ReduceAction620
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17833,11 +21678,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction550
+private class ReduceAction621
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17869,11 +21714,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction551
+private class ReduceAction622
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17902,11 +21747,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction552
+private class ReduceAction623
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17931,11 +21776,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction553
+private class ReduceAction624
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17963,11 +21808,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction554
+private class ReduceAction625
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -17997,11 +21842,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction555
+private class ReduceAction626
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18028,11 +21873,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction556
+private class ReduceAction627
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18067,11 +21912,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction557
+private class ReduceAction628
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18083,11 +21928,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction558
+private class ReduceAction629
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18099,11 +21944,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction559
+private class ReduceAction630
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18115,11 +21960,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction560
+private class ReduceAction631
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18131,11 +21976,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction561
+private class ReduceAction632
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18147,11 +21992,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction562
+private class ReduceAction633
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18163,11 +22008,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction563
+private class ReduceAction634
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18179,11 +22024,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction564
+private class ReduceAction635
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18195,11 +22040,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction565
+private class ReduceAction636
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18208,11 +22053,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction566
+private class ReduceAction637
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18239,29 +22084,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
-       end
-init do end
-end
-private class ReduceAction567
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa TClassid
-                                       var ptypenode1 = new AType.init_atype(
-                                               tclassidnode2,
-                                               listnode3
-                                       )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction568
+private class ReduceAction638
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18270,11 +22097,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction569
+private class ReduceAction639
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18316,11 +22143,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction570
+private class ReduceAction640
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18359,11 +22186,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction571
+private class ReduceAction641
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18372,11 +22199,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction572
+private class ReduceAction642
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18413,11 +22240,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction573
+private class ReduceAction643
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18426,11 +22253,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction574
+private class ReduceAction644
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18448,11 +22275,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction575
+private class ReduceAction645
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18470,11 +22297,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction576
+private class ReduceAction646
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18483,11 +22310,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction577
+private class ReduceAction647
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18504,11 +22331,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction578
+private class ReduceAction648
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18517,11 +22344,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction579
+private class ReduceAction649
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18539,11 +22366,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction580
+private class ReduceAction650
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18561,11 +22388,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction581
+private class ReduceAction651
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18583,11 +22410,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction582
+private class ReduceAction652
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18605,11 +22432,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction583
+private class ReduceAction653
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18627,11 +22454,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction584
+private class ReduceAction654
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18649,11 +22476,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction585
+private class ReduceAction655
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18671,11 +22498,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction586
+private class ReduceAction656
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18693,11 +22520,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction587
+private class ReduceAction657
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18715,11 +22542,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction588
+private class ReduceAction658
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18728,11 +22555,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction589
+private class ReduceAction659
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18750,11 +22577,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction590
+private class ReduceAction660
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18772,11 +22599,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction591
+private class ReduceAction661
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18785,11 +22612,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction592
+private class ReduceAction662
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18807,11 +22634,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction593
+private class ReduceAction663
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18829,11 +22656,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction594
+private class ReduceAction664
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18851,11 +22678,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction595
+private class ReduceAction665
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18864,11 +22691,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction596
+private class ReduceAction666
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18885,11 +22712,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction597
+private class ReduceAction667
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18906,11 +22733,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction598
+private class ReduceAction668
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18919,11 +22746,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction599
+private class ReduceAction669
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18953,11 +22780,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction600
+private class ReduceAction670
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -18973,11 +22800,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction601
+private class ReduceAction671
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19007,11 +22834,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction602
+private class ReduceAction672
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19036,11 +22863,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction603
+private class ReduceAction673
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19068,11 +22895,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction604
+private class ReduceAction674
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19100,11 +22927,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction605
+private class ReduceAction675
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19139,11 +22966,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction606
+private class ReduceAction676
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19155,11 +22982,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction607
+private class ReduceAction677
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19171,11 +22998,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction608
+private class ReduceAction678
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19187,11 +23014,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction609
+private class ReduceAction679
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19203,11 +23030,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction610
+private class ReduceAction680
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19219,11 +23046,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction611
+private class ReduceAction681
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19235,11 +23062,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction612
+private class ReduceAction682
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19251,11 +23078,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction613
+private class ReduceAction683
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19267,11 +23094,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction614
+private class ReduceAction684
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19280,11 +23107,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction615
+private class ReduceAction685
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19311,11 +23138,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction616
+private class ReduceAction686
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19326,11 +23153,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction617
+private class ReduceAction687
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19338,11 +23165,11 @@ special ReduceAction
                                        var pexprnode1 = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction618
+private class ReduceAction688
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19351,11 +23178,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction619
+private class ReduceAction689
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19397,11 +23224,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction620
+private class ReduceAction690
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19440,11 +23267,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction621
+private class ReduceAction691
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19453,11 +23280,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction622
+private class ReduceAction692
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19499,11 +23326,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction623
+private class ReduceAction693
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19542,11 +23369,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction624
+private class ReduceAction694
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19559,11 +23386,11 @@ special ReduceAction
                                                listnode2.add(pimportnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction625
+private class ReduceAction695
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19586,11 +23413,11 @@ special ReduceAction
                                                listnode3.add(pimportnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction626
+private class ReduceAction696
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19603,11 +23430,11 @@ special ReduceAction
                                                listnode2.add(pclassdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction627
+private class ReduceAction697
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19630,11 +23457,11 @@ special ReduceAction
                                                listnode3.add(pclassdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction628
+private class ReduceAction698
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19647,11 +23474,11 @@ special ReduceAction
                                                listnode2.add(psuperclassnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction629
+private class ReduceAction699
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19674,11 +23501,11 @@ special ReduceAction
                                                listnode3.add(psuperclassnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction630
+private class ReduceAction700
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19691,11 +23518,11 @@ special ReduceAction
                                                listnode2.add(pformaldefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction631
+private class ReduceAction701
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19718,55 +23545,11 @@ special ReduceAction
                                                listnode3.add(pformaldefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(125), node_list)
-       end
-init do end
-end
-private class ReduceAction632
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa PPropdef
-                                       if ppropdefnode1 != null then
-                                               listnode2.add(ppropdefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(126), node_list)
-       end
-init do end
-end
-private class ReduceAction633
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1 
-                                       assert listnode1 isa Array[Object]
-                                       var ppropdefnode2 = nodearraylist2
-                                       assert ppropdefnode2 isa PPropdef
-                                       if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-                                       end
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction634
+private class ReduceAction702
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19779,11 +23562,11 @@ special ReduceAction
                                                listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction635
+private class ReduceAction703
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19806,11 +23589,11 @@ special ReduceAction
                                                listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction636
+private class ReduceAction704
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19823,11 +23606,11 @@ special ReduceAction
                                                listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction637
+private class ReduceAction705
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19850,11 +23633,11 @@ special ReduceAction
                                                listnode3.add(pparamnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction638
+private class ReduceAction706
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19867,11 +23650,11 @@ special ReduceAction
                                                listnode2.add(pclosuredeclnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction639
+private class ReduceAction707
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19894,11 +23677,11 @@ special ReduceAction
                                                listnode3.add(pclosuredeclnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction640
+private class ReduceAction708
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19911,11 +23694,11 @@ special ReduceAction
                                                listnode2.add(ptypenode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction641
+private class ReduceAction709
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19938,11 +23721,11 @@ special ReduceAction
                                                listnode3.add(ptypenode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction642
+private class ReduceAction710
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19955,11 +23738,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction643
+private class ReduceAction711
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19982,11 +23765,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction644
+private class ReduceAction712
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20003,11 +23786,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction645
+private class ReduceAction713
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20034,11 +23817,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction646
+private class ReduceAction714
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20051,11 +23834,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction647
+private class ReduceAction715
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20078,11 +23861,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction648
+private class ReduceAction716
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20095,11 +23878,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction649
+private class ReduceAction717
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20122,11 +23905,11 @@ special ReduceAction
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction650
+private class ReduceAction718
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20139,11 +23922,11 @@ special ReduceAction
                                                listnode2.add(tcommentnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(135), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction651
+private class ReduceAction719
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20166,11 +23949,11 @@ special ReduceAction
                                                listnode3.add(tcommentnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(135), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction652
+private class ReduceAction720
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20183,11 +23966,11 @@ special ReduceAction
                                                listnode2.add(teolnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(136), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction653
+private class ReduceAction721
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20210,7 +23993,51 @@ special ReduceAction
                                                listnode3.add(teolnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(136), node_list)
+                                       p.push(p.go_to(132), node_list)
+       end
+init do end
+end
+private class ReduceAction722
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa PPropdef
+                                       if ppropdefnode1 != null then
+                                               listnode2.add(ppropdefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(133), node_list)
+       end
+init do end
+end
+private class ReduceAction723
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1 
+                                       assert listnode1 isa Array[Object]
+                                       var ppropdefnode2 = nodearraylist2
+                                       assert ppropdefnode2 isa PPropdef
+                                       if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+                                       end
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end