parser: Add 'fun' and 'var'-as-attr keyword
[nit.git] / src / parser / parser.nit
index 78d4659..4ada113 100644 (file)
@@ -882,108 +882,7 @@ special ParserTable
                        new ReduceAction720,
                        new ReduceAction721,
                        new ReduceAction722,
-                       new ReduceAction723,
-                       new ReduceAction724,
-                       new ReduceAction725,
-                       new ReduceAction726,
-                       new ReduceAction727,
-                       new ReduceAction728,
-                       new ReduceAction729,
-                       new ReduceAction730,
-                       new ReduceAction731,
-                       new ReduceAction732,
-                       new ReduceAction733,
-                       new ReduceAction734,
-                       new ReduceAction735,
-                       new ReduceAction736,
-                       new ReduceAction737,
-                       new ReduceAction738,
-                       new ReduceAction739,
-                       new ReduceAction740,
-                       new ReduceAction741,
-                       new ReduceAction742,
-                       new ReduceAction743,
-                       new ReduceAction744,
-                       new ReduceAction745,
-                       new ReduceAction746,
-                       new ReduceAction747,
-                       new ReduceAction748,
-                       new ReduceAction749,
-                       new ReduceAction750,
-                       new ReduceAction751,
-                       new ReduceAction752,
-                       new ReduceAction753,
-                       new ReduceAction754,
-                       new ReduceAction755,
-                       new ReduceAction756,
-                       new ReduceAction757,
-                       new ReduceAction758,
-                       new ReduceAction759,
-                       new ReduceAction760,
-                       new ReduceAction761,
-                       new ReduceAction762,
-                       new ReduceAction763,
-                       new ReduceAction764,
-                       new ReduceAction765,
-                       new ReduceAction766,
-                       new ReduceAction767,
-                       new ReduceAction768,
-                       new ReduceAction769,
-                       new ReduceAction770,
-                       new ReduceAction771,
-                       new ReduceAction772,
-                       new ReduceAction773,
-                       new ReduceAction774,
-                       new ReduceAction775,
-                       new ReduceAction776,
-                       new ReduceAction777,
-                       new ReduceAction778,
-                       new ReduceAction779,
-                       new ReduceAction780,
-                       new ReduceAction781,
-                       new ReduceAction782,
-                       new ReduceAction783,
-                       new ReduceAction784,
-                       new ReduceAction785,
-                       new ReduceAction786,
-                       new ReduceAction787,
-                       new ReduceAction788,
-                       new ReduceAction789,
-                       new ReduceAction790,
-                       new ReduceAction791,
-                       new ReduceAction792,
-                       new ReduceAction793,
-                       new ReduceAction794,
-                       new ReduceAction795,
-                       new ReduceAction796,
-                       new ReduceAction797,
-                       new ReduceAction798,
-                       new ReduceAction799,
-                       new ReduceAction800,
-                       new ReduceAction801,
-                       new ReduceAction802,
-                       new ReduceAction803,
-                       new ReduceAction804,
-                       new ReduceAction805,
-                       new ReduceAction806,
-                       new ReduceAction807,
-                       new ReduceAction808,
-                       new ReduceAction809,
-                       new ReduceAction810,
-                       new ReduceAction811,
-                       new ReduceAction812,
-                       new ReduceAction813,
-                       new ReduceAction814,
-                       new ReduceAction815,
-                       new ReduceAction816,
-                       new ReduceAction817,
-                       new ReduceAction818,
-                       new ReduceAction819,
-                       new ReduceAction820,
-                       new ReduceAction821,
-                       new ReduceAction822,
-                       new ReduceAction823,
-                       new ReduceAction824
+                       new ReduceAction723
                )
        end
 end
@@ -4906,6 +4805,7 @@ 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
@@ -4914,34 +4814,24 @@ special ReduceAction
                                        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 tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               pablenode3,
-                                               pablenode6,
                                                null,
-                                               pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -4953,6 +4843,7 @@ 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
@@ -4962,36 +4853,26 @@ special ReduceAction
                                        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 tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -5003,6 +4884,9 @@ 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
@@ -5010,28 +4894,24 @@ special ReduceAction
                                        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 tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               pablenode3,
-                                               null,
                                                null,
-                                               pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -5043,6 +4923,8 @@ 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
@@ -5052,36 +4934,26 @@ special ReduceAction
                                        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 tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               pablenode3,
-                                               pablenode6,
-                                               null,
-                                               pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -5093,7 +4965,6 @@ 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
@@ -5103,38 +4974,21 @@ special ReduceAction
                                        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 tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               pablenode3,
-                                               pablenode6,
                                                null,
-                                               pvisibilitynode10,
-                                               tkwattrnode11,
-                                               tattridnode12,
-                                               null,
-                                               null
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -5146,6 +5000,8 @@ 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
@@ -5154,30 +5010,23 @@ special ReduceAction
                                        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 tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -5189,6 +5038,8 @@ 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
@@ -5196,28 +5047,21 @@ special ReduceAction
                                        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 tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -5229,6 +5073,8 @@ 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
@@ -5237,30 +5083,23 @@ special ReduceAction
                                        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 tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode8,
-                                               tkwattrnode9,
-                                               tattridnode10,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
@@ -5272,27 +5111,30 @@ 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 tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa TAttrid
-                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                       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,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwattrnode7,
-                                               tattridnode8,
-                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5305,6 +5147,86 @@ 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
@@ -5314,6 +5236,45 @@ 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(
+                                               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(
@@ -5326,22 +5287,21 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var pvisibilitynode10 = nodearraylist4
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
+                                               null,
+                                               tattridnode13,
                                                null,
                                                null
                                        )
@@ -5350,12 +5310,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction100
+private class ReduceAction103
 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
@@ -5379,22 +5338,21 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
+                                               null,
+                                               tattridnode13,
                                                null,
                                                null
                                        )
@@ -5403,12 +5361,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction101
+private class ReduceAction104
 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
@@ -5422,22 +5379,21 @@ special ReduceAction
                                                null,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
+                                               null,
+                                               tattridnode11,
                                                null,
                                                null
                                        )
@@ -5446,12 +5402,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction102
+private class ReduceAction105
 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
@@ -5475,22 +5430,21 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
+                                               null,
+                                               tattridnode13,
                                                null,
                                                null
                                        )
@@ -5499,12 +5453,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction103
+private class ReduceAction106
 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
@@ -5531,22 +5484,21 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist8
+                                       var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa TAttrid
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
+                                               null,
+                                               tattridnode13,
                                                null,
                                                null
                                        )
@@ -5555,12 +5507,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction104
+private class ReduceAction107
 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
@@ -5577,22 +5528,21 @@ special ReduceAction
                                                tkwredefnode4,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
+                                               null,
+                                               tattridnode11,
                                                null,
                                                null
                                        )
@@ -5601,12 +5551,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction105
+private class ReduceAction108
 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
@@ -5620,22 +5569,21 @@ special ReduceAction
                                                null,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
+                                               null,
+                                               tattridnode11,
                                                null,
                                                null
                                        )
@@ -5644,12 +5592,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction106
+private class ReduceAction109
 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
@@ -5666,22 +5613,21 @@ special ReduceAction
                                                tkwredefnode5,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
+                                               null,
+                                               tattridnode11,
                                                null,
                                                null
                                        )
@@ -5690,34 +5636,32 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction107
+private class ReduceAction110
 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
+                                       var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist4
+                                       var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa TAttrid
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
-                                               tkwredefnode5,
+                                               null,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
+                                               null,
+                                               tattridnode9,
                                                null,
                                                null
                                        )
@@ -5726,7 +5670,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction108
+private class ReduceAction111
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -5752,23 +5696,24 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist4
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist5
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist7
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5776,7 +5721,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction109
+private class ReduceAction112
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -5805,23 +5750,24 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5829,7 +5775,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction110
+private class ReduceAction113
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -5848,23 +5794,24 @@ special ReduceAction
                                                null,
                                                tkwreadablenode5
                                        )
-                                       var pvisibilitynode8 = nodearraylist3
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5872,7 +5819,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction111
+private class ReduceAction114
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -5901,23 +5848,24 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5925,7 +5873,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction112
+private class ReduceAction115
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -5957,23 +5905,24 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist8
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -5981,7 +5930,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction113
+private class ReduceAction116
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -6003,23 +5952,24 @@ special ReduceAction
                                                tkwredefnode4,
                                                tkwreadablenode5
                                        )
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6027,7 +5977,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction114
+private class ReduceAction117
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -6046,23 +5996,24 @@ special ReduceAction
                                                null,
                                                tkwwritablenode6
                                        )
-                                       var pvisibilitynode8 = nodearraylist3
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist6
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6070,7 +6021,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction115
+private class ReduceAction118
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -6092,23 +6043,24 @@ special ReduceAction
                                                tkwredefnode5,
                                                tkwwritablenode6
                                        )
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6116,7 +6068,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction116
+private class ReduceAction119
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -6128,23 +6080,24 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode6 = nodearraylist2
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist3
+                                       var tkwattrnode7 = nodearraylist4
                                        assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa TAttrid
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
-                                               null,
+                                               tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
+                                               null,
+                                               tattridnode9,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6152,12 +6105,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction117
+private class ReduceAction120
 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
@@ -6179,25 +6131,24 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var pvisibilitynode10 = nodearraylist4
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist8
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist7
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6205,12 +6156,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction118
+private class ReduceAction121
 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
@@ -6235,25 +6185,24 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6261,12 +6210,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction119
+private class ReduceAction122
 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
@@ -6281,25 +6229,24 @@ special ReduceAction
                                                null,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6307,12 +6254,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction120
+private class ReduceAction123
 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
@@ -6337,25 +6283,24 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist9
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6363,12 +6308,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction121
+private class ReduceAction124
 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
@@ -6396,25 +6340,24 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist8
+                                       var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa TAttrid
-                                       var ptypenode13 = nodearraylist10
-                                       assert ptypenode13 isa PType
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6422,12 +6365,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction122
+private class ReduceAction125
 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
@@ -6445,25 +6387,24 @@ special ReduceAction
                                                tkwredefnode4,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6471,12 +6412,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction123
+private class ReduceAction126
 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
@@ -6491,25 +6431,24 @@ special ReduceAction
                                                null,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist7
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist6
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6517,12 +6456,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction124
+private class ReduceAction127
 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
@@ -6540,25 +6478,24 @@ special ReduceAction
                                                tkwredefnode5,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var ptypenode11 = nodearraylist8
-                                       assert ptypenode11 isa PType
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6566,12 +6503,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction125
+private class ReduceAction128
 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
@@ -6579,25 +6515,24 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
+                                       var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist4
+                                       var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa TAttrid
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist5
+                                       assert ptypenode10 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
-                                               tkwredefnode5,
+                                               null,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
+                                               null,
+                                               tattridnode9,
+                                               ptypenode10,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6605,12 +6540,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction126
+private class ReduceAction129
 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
@@ -6633,36 +6567,38 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist4
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist5
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist6
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist9
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist8
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction127
+private class ReduceAction130
 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
@@ -6688,36 +6624,38 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction128
+private class ReduceAction131
 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
@@ -6733,36 +6671,38 @@ special ReduceAction
                                                null,
                                                tkwreadablenode5
                                        )
-                                       var pvisibilitynode8 = nodearraylist3
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction129
+private class ReduceAction132
 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
@@ -6788,36 +6728,38 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist9
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction130
+private class ReduceAction133
 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
@@ -6846,36 +6788,38 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist8
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var ptypenode14 = nodearraylist10
+                                       assert ptypenode14 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction131
+private class ReduceAction134
 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
@@ -6894,36 +6838,38 @@ special ReduceAction
                                                tkwredefnode4,
                                                tkwreadablenode5
                                        )
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction132
+private class ReduceAction135
 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
@@ -6939,36 +6885,38 @@ special ReduceAction
                                                null,
                                                tkwwritablenode6
                                        )
-                                       var pvisibilitynode8 = nodearraylist3
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist5
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist7
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction133
+private class ReduceAction136
 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
@@ -6987,36 +6935,38 @@ special ReduceAction
                                                tkwredefnode5,
                                                tkwwritablenode6
                                        )
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var ptypenode12 = nodearraylist8
+                                       assert ptypenode12 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction134
+private class ReduceAction137
 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
@@ -7025,36 +6975,38 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode6 = nodearraylist2
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist3
+                                       var tkwattrnode7 = nodearraylist4
                                        assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa TAttrid
-                                       var pexprnode10 = nodearraylist7
-                                       assert pexprnode10 isa PExpr
+                                       var tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var ptypenode10 = nodearraylist6
+                                       assert ptypenode10 isa PType
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
-                                               null,
+                                               tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
                                                null,
-                                               pexprnode10
+                                               tattridnode9,
+                                               ptypenode10,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction135
+private class ReduceAction138
 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
@@ -7078,38 +7030,36 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var pvisibilitynode10 = nodearraylist4
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist7
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist10
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist6
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist9
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction136
+private class ReduceAction139
 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
@@ -7136,38 +7086,36 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction137
+private class ReduceAction140
 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
@@ -7184,38 +7132,36 @@ special ReduceAction
                                                null,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction138
+private class ReduceAction141
 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
@@ -7242,38 +7188,36 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist8
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist11
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction139
+private class ReduceAction142
 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
@@ -7303,38 +7247,36 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist8
+                                       var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa TKwattr
-                                       var tattridnode12 = nodearraylist9
-                                       assert tattridnode12 isa TAttrid
-                                       var pexprnode14 = nodearraylist12
-                                       assert pexprnode14 isa PExpr
+                                       var tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
                                                null,
-                                               pexprnode14
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction140
+private class ReduceAction143
 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
@@ -7354,38 +7296,36 @@ special ReduceAction
                                                tkwredefnode4,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction141
+private class ReduceAction144
 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
@@ -7402,38 +7342,36 @@ special ReduceAction
                                                null,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist6
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction142
+private class ReduceAction145
 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
@@ -7453,38 +7391,36 @@ special ReduceAction
                                                tkwredefnode5,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa TKwattr
-                                       var tattridnode10 = nodearraylist7
-                                       assert tattridnode10 isa TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
                                                null,
-                                               pexprnode12
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction143
+private class ReduceAction146
 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
@@ -7494,33 +7430,32 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
+                                       var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist4
+                                       var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa TKwattr
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa TAttrid
-                                       var pexprnode10 = nodearraylist8
-                                       assert pexprnode10 isa PExpr
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
-                                               tkwredefnode5,
+                                               null,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
                                                null,
-                                               pexprnode10
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction144
+private class ReduceAction147
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7549,33 +7484,34 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist4
+                                       var tkwredefnode9 = nodearraylist4
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist5
+                                       var tkwattrnode11 = nodearraylist6
                                        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 tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction145
+private class ReduceAction148
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7607,33 +7543,34 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist7
                                        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 tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction146
+private class ReduceAction149
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7655,33 +7592,34 @@ special ReduceAction
                                                null,
                                                tkwreadablenode5
                                        )
-                                       var pvisibilitynode8 = nodearraylist3
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
+                                       var tkwattrnode9 = nodearraylist5
                                        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 tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
-                                       )
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
+                                       )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction147
+private class ReduceAction150
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7713,33 +7651,34 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var tkwredefnode9 = nodearraylist5
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist7
                                        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 tattridnode13 = nodearraylist8
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction148
+private class ReduceAction151
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7774,33 +7713,34 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var tkwredefnode9 = nodearraylist6
+                                       assert tkwredefnode9 isa TKwredef
+                                       var pvisibilitynode10 = nodearraylist7
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist8
                                        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 tattridnode13 = nodearraylist9
+                                       assert tattridnode13 isa TAttrid
+                                       var pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                pablenode6,
-                                               null,
+                                               tkwredefnode9,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction149
+private class ReduceAction152
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7825,33 +7765,34 @@ special ReduceAction
                                                tkwredefnode4,
                                                tkwreadablenode5
                                        )
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist6
                                        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 tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
                                                null,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction150
+private class ReduceAction153
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7873,33 +7814,34 @@ special ReduceAction
                                                null,
                                                tkwwritablenode6
                                        )
-                                       var pvisibilitynode8 = nodearraylist3
+                                       var tkwredefnode7 = nodearraylist3
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist4
+                                       var tkwattrnode9 = nodearraylist5
                                        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 tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction151
+private class ReduceAction154
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7924,33 +7866,34 @@ special ReduceAction
                                                tkwredefnode5,
                                                tkwwritablenode6
                                        )
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var tkwredefnode7 = nodearraylist4
+                                       assert tkwredefnode7 isa TKwredef
+                                       var pvisibilitynode8 = nodearraylist5
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist6
                                        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 tattridnode11 = nodearraylist7
+                                       assert tattridnode11 isa TAttrid
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                pablenode4,
-                                               null,
+                                               tkwredefnode7,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction152
+private class ReduceAction155
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -7965,38 +7908,38 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode6 = nodearraylist2
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var pvisibilitynode6 = nodearraylist3
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist3
+                                       var tkwattrnode7 = nodearraylist4
                                        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 tattridnode9 = nodearraylist5
+                                       assert tattridnode9 isa TAttrid
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa PExpr
                                        var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
                                                null,
-                                               null,
+                                               tkwredefnode5,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               pexprnode10
+                                               null,
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction153
+private class ReduceAction156
 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
@@ -8021,40 +7964,38 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist4
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist5
+                                       var pvisibilitynode10 = nodearraylist4
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist6
+                                       var tkwattrnode11 = nodearraylist5
                                        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 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,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction154
+private class ReduceAction157
 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
@@ -8082,40 +8023,38 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        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 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,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction155
+private class ReduceAction158
 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
@@ -8133,40 +8072,38 @@ special ReduceAction
                                                null,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        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 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,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction156
+private class ReduceAction159
 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
@@ -8194,40 +8131,38 @@ special ReduceAction
                                                null,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist5
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist6
+                                       var pvisibilitynode10 = nodearraylist5
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist7
+                                       var tkwattrnode11 = nodearraylist6
                                        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 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,
-                                               tkwredefnode9,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction157
+private class ReduceAction160
 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
@@ -8258,40 +8193,38 @@ special ReduceAction
                                                tkwredefnode7,
                                                tkwwritablenode8
                                        )
-                                       var tkwredefnode9 = nodearraylist6
-                                       assert tkwredefnode9 isa TKwredef
-                                       var pvisibilitynode10 = nodearraylist7
+                                       var pvisibilitynode10 = nodearraylist6
                                        assert pvisibilitynode10 isa PVisibility
-                                       var tkwattrnode11 = nodearraylist8
+                                       var tkwattrnode11 = nodearraylist7
                                        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 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,
+                                               null,
                                                pvisibilitynode10,
                                                tkwattrnode11,
-                                               tattridnode12,
-                                               ptypenode13,
-                                               pexprnode14
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction158
+private class ReduceAction161
 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
@@ -8312,40 +8245,38 @@ special ReduceAction
                                                tkwredefnode4,
                                                tkwreadablenode5
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        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 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,
                                                null,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction159
+private class ReduceAction162
 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
@@ -8363,40 +8294,38 @@ special ReduceAction
                                                null,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist3
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist4
+                                       var pvisibilitynode8 = nodearraylist3
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist5
+                                       var tkwattrnode9 = nodearraylist4
                                        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 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,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction160
+private class ReduceAction163
 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
@@ -8417,40 +8346,38 @@ special ReduceAction
                                                tkwredefnode5,
                                                tkwwritablenode6
                                        )
-                                       var tkwredefnode7 = nodearraylist4
-                                       assert tkwredefnode7 isa TKwredef
-                                       var pvisibilitynode8 = nodearraylist5
+                                       var pvisibilitynode8 = nodearraylist4
                                        assert pvisibilitynode8 isa PVisibility
-                                       var tkwattrnode9 = nodearraylist6
+                                       var tkwattrnode9 = nodearraylist5
                                        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 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,
                                                pablenode4,
-                                               tkwredefnode7,
+                                               null,
                                                pvisibilitynode8,
                                                tkwattrnode9,
-                                               tattridnode10,
-                                               ptypenode11,
-                                               pexprnode12
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction161
+private class ReduceAction164
 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
@@ -8461,39 +8388,43 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
+                                       var pvisibilitynode6 = nodearraylist2
                                        assert pvisibilitynode6 isa PVisibility
-                                       var tkwattrnode7 = nodearraylist4
+                                       var tkwattrnode7 = nodearraylist3
                                        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 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,
                                                null,
-                                               tkwredefnode5,
+                                               null,
                                                pvisibilitynode6,
                                                tkwattrnode7,
-                                               tattridnode8,
-                                               ptypenode9,
-                                               pexprnode10
+                                               null,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction162
+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
                                        var nodearraylist4 = p.pop
@@ -8502,38 +8433,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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode10
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
+                                       var tkwwritablenode8 = nodearraylist3
+                                       assert tkwwritablenode8 isa TKwwritable
+                                       var pablenode6 = new AWriteAble.init_awriteable(
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwwritablenode8
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction163
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist7 = p.pop
+                                       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 pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
+                                               null,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+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
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -8542,46 +8493,57 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode11
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction164
+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
@@ -8591,39 +8553,50 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction165
+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
@@ -8634,48 +8607,60 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction166
+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
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -8685,46 +8670,59 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode15 = nodearraylist13
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               tkwattrnode11,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction167
+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
@@ -8735,55 +8733,50 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode13 = nodearraylist11
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction168
+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
@@ -8794,48 +8787,48 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction169
+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
@@ -8847,57 +8840,50 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode13 = nodearraylist11
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               tkwattrnode9,
+                                               null,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction170
+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
@@ -8907,41 +8893,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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               tkwattrnode7,
+                                               null,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction171
+private class ReduceAction174
 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
@@ -8950,49 +8935,46 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode11
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction172
+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
@@ -9002,45 +8984,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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction173
+private class ReduceAction176
 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
@@ -9048,51 +9033,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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction174
+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
@@ -9102,49 +9076,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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       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,
-                                               listnode11
+                                               tkwwritablenode8
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var pvisibilitynode10 = nodearraylist5
+                                       assert pvisibilitynode10 isa PVisibility
+                                       var tkwvarnode12 = nodearraylist6
+                                       assert tkwvarnode12 isa TKwvar
+                                       var tattridnode13 = nodearraylist7
+                                       assert tattridnode13 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction175
+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
@@ -9155,60 +9128,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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction176
+private class ReduceAction179
 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
@@ -9217,55 +9180,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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction177
+private class ReduceAction180
 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
@@ -9273,55 +9223,36 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist4
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist5
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               null,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction178
+private class ReduceAction181
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9334,82 +9265,72 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       var tkwvarnode10 = nodearraylist5
+                                       assert tkwvarnode10 isa TKwvar
+                                       var tattridnode11 = nodearraylist6
+                                       assert tattridnode11 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction179
+private class ReduceAction182
 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       var pvisibilitynode6 = nodearraylist2
+                                       assert pvisibilitynode6 isa PVisibility
+                                       var tkwvarnode8 = nodearraylist3
+                                       assert tkwvarnode8 isa TKwvar
+                                       var tattridnode9 = nodearraylist4
+                                       assert tattridnode9 isa TAttrid
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction180
+private class ReduceAction183
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9423,35 +9344,44 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction181
+private class ReduceAction184
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9466,49 +9396,50 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction182
+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
@@ -9517,42 +9448,38 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode11
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction183
+private class ReduceAction186
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9567,55 +9494,51 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       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,
-                                               listnode12
+                                               tkwwritablenode8
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction184
+private class ReduceAction187
 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
@@ -9626,50 +9549,52 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction185
+private class ReduceAction188
 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
@@ -9679,58 +9604,44 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction186
+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
@@ -9739,40 +9650,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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
                                                null,
-                                               listnode10
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction187
+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
@@ -9782,51 +9695,44 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction188
+private class ReduceAction191
 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
@@ -9834,43 +9740,36 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction189
+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
@@ -9880,46 +9779,44 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction190
+private class ReduceAction193
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -9934,51 +9831,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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode11
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction191
+private class ReduceAction194
 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
@@ -9987,58 +9883,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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode12
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction192
+private class ReduceAction195
 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
@@ -10049,51 +9929,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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction193
+private class ReduceAction196
 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
@@ -10105,59 +9984,53 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AInternMethPropdef.init_ainternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction194
+private class ReduceAction197
 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
@@ -10166,26 +10039,32 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10193,12 +10072,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction195
+private class ReduceAction198
 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
@@ -10207,35 +10085,30 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
                                                null,
-                                               listnode11
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10243,7 +10116,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction196
+private class ReduceAction199
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10257,28 +10130,32 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10286,14 +10163,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction197
+private class ReduceAction200
 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
@@ -10301,37 +10175,24 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
+                                       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 psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               ptypenode10,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10339,11 +10200,12 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction198
+private class ReduceAction201
 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
@@ -10353,35 +10215,38 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode11
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10389,11 +10254,12 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction199
+private class ReduceAction202
 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
@@ -10404,44 +10270,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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode12
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10449,12 +10311,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction200
+private class ReduceAction203
 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
@@ -10464,37 +10325,32 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10502,7 +10358,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction201
+private class ReduceAction204
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10518,46 +10374,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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10565,11 +10415,14 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction202
+private class ReduceAction205
 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
@@ -10579,28 +10432,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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10608,7 +10475,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction203
+private class ReduceAction206
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10623,37 +10490,34 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10661,12 +10525,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction204
+private class ReduceAction207
 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
@@ -10676,30 +10539,32 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10707,12 +10572,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction205
+private class ReduceAction208
 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
@@ -10723,39 +10587,34 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -10763,11 +10622,52 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction206
+private class ReduceAction209
+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 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,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               ptypenode10,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(12), node_list)
+       end
+init do end
+end
+private class ReduceAction210
 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
@@ -10778,49 +10678,49 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode11
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode15 = nodearraylist9
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction207
+private class ReduceAction211
 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
@@ -10832,59 +10732,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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode12
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction208
+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
@@ -10895,47 +10786,38 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       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,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                               pablenode3,
+                                               null,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction209
+private class ReduceAction213
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -10952,60 +10834,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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                               pablenode3,
+                                               pablenode6,
+                                               null,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction210
+private class ReduceAction214
 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
@@ -11015,40 +10891,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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var tstringnode11 = nodearraylist7
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction211
+private class ReduceAction215
 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
@@ -11059,45 +10948,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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var tstringnode12 = nodearraylist8
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       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,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction212
+private class ReduceAction216
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11112,38 +10996,38 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
                                        )
-                                       var tstringnode11 = nodearraylist8
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist3
+                                       assert pvisibilitynode8 isa PVisibility
+                                       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,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction213
+private class ReduceAction217
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11159,52 +11043,44 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       var pvisibilitynode8 = nodearraylist4
+                                       assert pvisibilitynode8 isa PVisibility
+                                       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,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction214
+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
@@ -11214,49 +11090,37 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist8
-                                       assert tstringnode12 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 pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                               null,
+                                               null,
+                                               pvisibilitynode6,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction215
+private class ReduceAction219
 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
@@ -11268,58 +11132,52 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode12
+                                               tkwreadablenode5
                                        )
-                                       var tstringnode13 = nodearraylist9
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode15 = nodearraylist10
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode13
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction216
+private class ReduceAction220
 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
@@ -11331,52 +11189,52 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction217
+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
@@ -11388,60 +11246,47 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var tstringnode13 = nodearraylist10
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode13
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction218
+private class ReduceAction222
 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
@@ -11452,42 +11297,55 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       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,
-                                               listnode10
+                                               tkwwritablenode8
                                        )
-                                       var tstringnode11 = nodearraylist8
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode15 = nodearraylist11
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction219
+private class ReduceAction223
 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
@@ -11499,51 +11357,55 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       node_list = ppropdefnode1
+                                       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 pexprnode15 = nodearraylist12
+                                       assert pexprnode15 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               null,
+                                               pexprnode15
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction220
+private class ReduceAction224
 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
@@ -11555,45 +11417,46 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var tstringnode11 = nodearraylist9
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
+                                               pablenode3,
+                                               null,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction221
+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
@@ -11605,53 +11468,45 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               null,
+                                               tkwwritablenode6
                                        )
-                                       var tstringnode12 = nodearraylist10
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction222
+private class ReduceAction226
 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
@@ -11663,53 +11518,46 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction223
+private class ReduceAction227
 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
@@ -11720,56 +11568,34 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var tstringnode13 = nodearraylist10
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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 pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode13
+                                               null,
+                                               null,
+                                               tkwredefnode5,
+                                               pvisibilitynode6,
+                                               null,
+                                               tkwvarnode8,
+                                               tattridnode9,
+                                               null,
+                                               pexprnode11
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction224
+private class ReduceAction228
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11786,49 +11612,46 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist10
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
+                                       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,
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction225
+private class ReduceAction229
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -11846,62 +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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var tstringnode13 = nodearraylist11
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
+                                       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,
-                                               tstringnode13
+                                               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 ReduceAction226
+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
@@ -11911,40 +11726,47 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode10
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
+                                               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 ReduceAction227
+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
@@ -11955,49 +11777,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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       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,
-                                               listnode11
+                                               tkwwritablenode8
                                        )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction228
+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
@@ -12008,42 +11837,55 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               pexprnode11
+                                               pvisibilitynode10,
+                                               null,
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction229
+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
@@ -12055,51 +11897,47 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
+                                               pablenode3,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
+                                               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 ReduceAction230
+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
@@ -12110,49 +11948,45 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
                                                null,
-                                               listnode11
+                                               tkwwritablenode6
                                        )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               pexprnode12
+                                               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 ReduceAction231
+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
@@ -12164,46 +11998,34 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var pexprnode13 = nodearraylist9
+                                       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 AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pablenode4,
+                                               null,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                pexprnode13
                                        )
                                        node_list = ppropdefnode1
@@ -12211,12 +12033,11 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction232
+private class ReduceAction236
 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
@@ -12227,51 +12048,39 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               pexprnode12
+                                               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 ReduceAction233
+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
@@ -12284,60 +12093,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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
+                                               pablenode3,
+                                               pablenode6,
+                                               tkwredefnode9,
+                                               pvisibilitynode10,
                                                null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
+                                               tkwvarnode12,
+                                               tattridnode13,
+                                               ptypenode14,
+                                               pexprnode15
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction234
+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
@@ -12348,42 +12153,55 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode10
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
+                                               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 ReduceAction235
+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
@@ -12395,51 +12213,49 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwreadablenode5 = nodearraylist2
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
                                                null,
-                                               listnode11
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               pexprnode12
+                                               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 ReduceAction236
+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
@@ -12451,44 +12267,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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
+                                               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 ReduceAction237
+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
@@ -12501,53 +12330,58 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               pexprnode12
+                                               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 ReduceAction238
+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
@@ -12559,47 +12393,44 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
+                                       var tkwredefnode4 = nodearraylist2
+                                       assert tkwredefnode4 isa TKwredef
+                                       var tkwreadablenode5 = nodearraylist3
+                                       assert tkwreadablenode5 isa TKwreadable
+                                       var pablenode3 = new AReadAble.init_areadable(
+                                               tkwredefnode4,
+                                               tkwreadablenode5
                                        )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
+                                               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 ReduceAction239
+private class ReduceAction243
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -12616,48 +12447,34 @@ 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
+                                       var tkwwritablenode6 = nodearraylist2
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
                                                null,
-                                               listnode12
+                                               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 AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               null,
+                                               pablenode4,
+                                               tkwredefnode7,
+                                               pvisibilitynode8,
+                                               null,
+                                               tkwvarnode10,
+                                               tattridnode11,
+                                               ptypenode12,
                                                pexprnode13
                                        )
                                        node_list = ppropdefnode1
@@ -12665,11 +12482,12 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction240
+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
@@ -12682,55 +12500,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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
+                                       var tkwredefnode5 = nodearraylist2
+                                       assert tkwredefnode5 isa TKwredef
+                                       var tkwwritablenode6 = nodearraylist3
+                                       assert tkwwritablenode6 isa TKwwritable
+                                       var pablenode4 = new AWriteAble.init_awriteable(
+                                               tkwredefnode5,
+                                               tkwwritablenode6
                                        )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
+                                               null,
+                                               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 ReduceAction241
+private class ReduceAction245
 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
@@ -12742,64 +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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
+                                       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 listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa PExpr
+                                       var ppropdefnode1 = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
+                                               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 ReduceAction242
+private class ReduceAction246
 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
@@ -12810,40 +12597,31 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
+                                               tkwinitnode5,
+                                               null,
                                                psignaturenode7,
-                                               pexprnode11
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction243
+private class ReduceAction247
 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
@@ -12853,51 +12631,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
+                                               tkwinitnode5,
+                                               null,
                                                psignaturenode7,
-                                               pexprnode12
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction244
+private class ReduceAction248
 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
@@ -12909,42 +12671,33 @@ 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pexprnode11
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction245
+private class ReduceAction249
 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
@@ -12955,53 +12708,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
+                                       var pmethidnode6 = nodearraylist5
                                        assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pexprnode12
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction246
+private class ReduceAction250
 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
@@ -13013,49 +12750,31 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
+                                               tkwinitnode5,
+                                               null,
                                                psignaturenode7,
-                                               pexprnode12
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction247
+private class ReduceAction251
 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
@@ -13066,60 +12785,35 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       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(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
+                                               tkwinitnode5,
+                                               null,
                                                psignaturenode7,
-                                               pexprnode13
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction248
+private class ReduceAction252
 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
@@ -13132,51 +12826,33 @@ 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pexprnode12
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction249
+private class ReduceAction253
 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
@@ -13188,64 +12864,37 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
+                                       var tkwinitnode5 = nodearraylist4
+                                       assert tkwinitnode5 isa TKwinit
+                                       var pmethidnode6 = nodearraylist5
                                        assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa PSignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa PExpr
+                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwinitnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pexprnode13
+                                               pexprnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction250
+private class ReduceAction254
 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
@@ -13253,46 +12902,32 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
+                                       var pvisibilitynode4 = nodearraylist2
                                        assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 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,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction251
+private class ReduceAction255
 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
@@ -13305,6662 +12940,38 @@ 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 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,
-                                               pexprnode12
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(12), node_list)
        end
 init do end
 end
-private class ReduceAction252
+private class ReduceAction256
 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 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
+                                       var pvisibilitynode1 = new APublicVisibility.init_apublicvisibility(
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
+                                       node_list = pvisibilitynode1
+                                       p.push(p.go_to(13), node_list)
        end
 init do end
 end
-private class ReduceAction253
-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 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction254
-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 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction255
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction256
-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 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction257
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction258
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist6
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction259
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction260
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist4
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction261
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction262
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist4 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction263
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist5 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist8
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction264
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist4
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction265
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction266
-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 tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction267
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction268
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction269
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction270
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction271
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction272
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction273
-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 tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction274
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction275
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction276
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction277
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction278
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction279
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction280
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction281
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction282
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction283
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction284
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction285
-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 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction286
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction287
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction288
-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 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction289
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction290
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist6
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction291
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction292
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist4
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction293
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction294
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist4 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction295
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist5 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist8
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction296
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist4
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction297
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist4 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction298
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction299
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction300
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction301
-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 tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction302
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction303
-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 tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction304
-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 tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction305
-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 tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction306
-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 tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction307
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction308
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction309
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction310
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction311
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction312
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction313
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction314
-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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction315
-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 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction316
-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 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction317
-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 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction318
-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 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction319
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction320
-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 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction321
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(12), node_list)
-       end
-init do end
-end
-private class ReduceAction322
-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 ReduceAction323
-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 ReduceAction324
-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 ReduceAction325
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction326
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction327
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction328
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction329
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction330
-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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction331
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction332
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction333
-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 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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction334
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction335
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction336
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction337
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction338
-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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction339
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction340
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction341
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var tstringnode11 = nodearraylist7
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction342
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist8
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction343
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var tstringnode11 = nodearraylist8
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction344
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction345
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist8
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction346
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var tstringnode13 = nodearraylist9
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction347
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction348
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var tstringnode13 = nodearraylist10
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction349
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var tstringnode11 = nodearraylist8
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction350
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction351
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var tstringnode11 = nodearraylist9
-                                       assert tstringnode11 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction352
-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 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist10
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction353
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist9
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction354
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var tstringnode13 = nodearraylist10
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction355
-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 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var tstringnode12 = nodearraylist10
-                                       assert tstringnode12 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction356
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var tstringnode13 = nodearraylist11
-                                       assert tstringnode13 isa TString
-                                       var ppropdefnode1 = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction357
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction358
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction359
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction360
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction361
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist5 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction362
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist6 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction363
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist5
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction364
-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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa PMethid
-                                       var listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist5 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction365
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction366
-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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction367
-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 listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode10
-                                       )
-                                       var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction368
-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 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 listnode9 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction369
-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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode10 = nodearraylist6 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               null,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-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
-                                       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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var listnode11 = nodearraylist7 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               null,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction371
-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 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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var ptypenode9 = nodearraylist6
-                                       assert ptypenode9 isa PType
-                                       var listnode10 = nodearraylist7 
-                                       assert listnode10 isa Array[Object]
-                                       if listnode10 != null then
-                                               if listnode11.is_empty then
-                                                       listnode11 = listnode10
-                                               else
-                                                       listnode11.append(listnode10)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode8,
-                                               ptypenode9,
-                                               listnode11
-                                       )
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction372
-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 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 listnode9 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode8 = nodearraylist6 
-                                       assert listnode8 isa Array[Object]
-                                       if listnode8 != null then
-                                               if listnode9.is_empty then
-                                                       listnode9 = listnode8
-                                               else
-                                                       listnode9.append(listnode8)
-                                               end
-                                       end
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa PType
-                                       var listnode11 = nodearraylist8 
-                                       assert listnode11 isa Array[Object]
-                                       if listnode11 != null then
-                                               if listnode12.is_empty then
-                                                       listnode12 = listnode11
-                                               else
-                                                       listnode12.append(listnode11)
-                                               end
-                                       end
-                                       var psignaturenode7 = new ASignature.init_asignature(
-                                               listnode9,
-                                               ptypenode10,
-                                               listnode12
-                                       )
-                                       var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa PExpr
-                                       var ppropdefnode1 = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode13
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(14), node_list)
-       end
-init do end
-end
-private class ReduceAction373
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var pvisibilitynode1 = new APublicVisibility.init_apublicvisibility(
-                                       )
-                                       node_list = pvisibilitynode1
-                                       p.push(p.go_to(15), node_list)
-       end
-init do end
-end
-private class ReduceAction374
+private class ReduceAction257
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19973,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 ReduceAction375
+private class ReduceAction258
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -19990,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 ReduceAction376
+private class ReduceAction259
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20007,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 ReduceAction377
+private class ReduceAction260
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20023,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 ReduceAction378
+private class ReduceAction261
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20039,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 ReduceAction379
+private class ReduceAction262
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20055,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 ReduceAction380
+private class ReduceAction263
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20071,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 ReduceAction381
+private class ReduceAction264
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20087,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 ReduceAction382
+private class ReduceAction265
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20103,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 ReduceAction383
+private class ReduceAction266
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20119,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 ReduceAction384
+private class ReduceAction267
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20135,131 +13146,356 @@ 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 ReduceAction268
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tlenode2 = nodearraylist1
+                                       assert tlenode2 isa TLe
+                                       var pmethidnode1 = new ALeMethid.init_alemethid(
+                                               tlenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction269
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tgenode2 = nodearraylist1
+                                       assert tgenode2 isa TGe
+                                       var pmethidnode1 = new AGeMethid.init_agemethid(
+                                               tgenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction270
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tltnode2 = nodearraylist1
+                                       assert tltnode2 isa TLt
+                                       var pmethidnode1 = new ALtMethid.init_altmethid(
+                                               tltnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction271
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tgtnode2 = nodearraylist1
+                                       assert tgtnode2 isa TGt
+                                       var pmethidnode1 = new AGtMethid.init_agtmethid(
+                                               tgtnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction272
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa TCbra
+                                       var pmethidnode1 = new ABraMethid.init_abramethid(
+                                               tobranode2,
+                                               tcbranode3
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction273
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarshipnode2 = nodearraylist1
+                                       assert tstarshipnode2 isa TStarship
+                                       var pmethidnode1 = new AStarshipMethid.init_astarshipmethid(
+                                               tstarshipnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction274
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa TId
+                                       var tassignnode3 = nodearraylist2
+                                       assert tassignnode3 isa TAssign
+                                       var pmethidnode1 = new AAssignMethid.init_aassignmethid(
+                                               tidnode2,
+                                               tassignnode3
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
+       end
+init do end
+end
+private class ReduceAction275
+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
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa TCbra
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa TAssign
+                                       var pmethidnode1 = new ABraassignMethid.init_abraassignmethid(
+                                               tobranode2,
+                                               tcbranode3,
+                                               tassignnode4
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(14), node_list)
        end
 init do end
 end
-private class ReduceAction385
+private class ReduceAction276
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist1 = p.pop
-                                       var tlenode2 = nodearraylist1
-                                       assert tlenode2 isa TLe
-                                       var pmethidnode1 = new ALeMethid.init_alemethid(
-                                               tlenode2
+                                       var listnode2 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode4 = nodearraylist1 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode2,
+                                               null,
+                                               listnode5
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction386
+private class ReduceAction277
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tgenode2 = nodearraylist1
-                                       assert tgenode2 isa TGe
-                                       var pmethidnode1 = new AGeMethid.init_agemethid(
-                                               tgenode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var listnode5 = nodearraylist2 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode3,
+                                               null,
+                                               listnode6
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction387
+private class ReduceAction278
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tltnode2 = nodearraylist1
-                                       assert tltnode2 isa TLt
-                                       var pmethidnode1 = new ALtMethid.init_altmethid(
-                                               tltnode2
+                                       var listnode2 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa PType
+                                       var listnode4 = nodearraylist2 
+                                       assert listnode4 isa Array[Object]
+                                       if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+                                       end
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3,
+                                               listnode5
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction388
+private class ReduceAction279
 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
-                                       var tgtnode2 = nodearraylist1
-                                       assert tgtnode2 isa TGt
-                                       var pmethidnode1 = new AGtMethid.init_agtmethid(
-                                               tgtnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa PType
+                                       var listnode5 = nodearraylist3 
+                                       assert listnode5 isa Array[Object]
+                                       if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+                                       end
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4,
+                                               listnode6
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction389
+private class ReduceAction280
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa TObra
-                                       var tcbranode3 = nodearraylist2
-                                       assert tcbranode3 isa TCbra
-                                       var pmethidnode1 = new ABraMethid.init_abramethid(
-                                               tobranode2,
-                                               tcbranode3
+                                       var listnode2 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode2,
+                                               null,
+                                               listnode4
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction390
+private class ReduceAction281
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstarshipnode2 = nodearraylist1
-                                       assert tstarshipnode2 isa TStarship
-                                       var pmethidnode1 = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode3,
+                                               null,
+                                               listnode5
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction391
+private class ReduceAction282
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa TId
-                                       var tassignnode3 = nodearraylist2
-                                       assert tassignnode3 isa TAssign
-                                       var pmethidnode1 = new AAssignMethid.init_aassignmethid(
-                                               tidnode2,
-                                               tassignnode3
+                                       var listnode2 = new Array[Object]
+                                       var listnode4 = new Array[Object]
+                                       var ptypenode3 = nodearraylist1
+                                       assert ptypenode3 isa PType
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode2,
+                                               ptypenode3,
+                                               listnode4
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction392
+private class ReduceAction283
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20267,23 +13503,30 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa TObra
-                                       var tcbranode3 = nodearraylist2
-                                       assert tcbranode3 isa TCbra
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa TAssign
-                                       var pmethidnode1 = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode2,
-                                               tcbranode3,
-                                               tassignnode4
+                                       var listnode3 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa PType
+                                       var psignaturenode1 = new ASignature.init_asignature(
+                                               listnode3,
+                                               ptypenode4,
+                                               listnode5
                                        )
-                                       node_list = pmethidnode1
-                                       p.push(p.go_to(16), node_list)
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(15), node_list)
        end
 init do end
 end
-private class ReduceAction393
+private class ReduceAction284
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20296,11 +13539,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction394
+private class ReduceAction285
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20323,11 +13566,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction395
+private class ReduceAction286
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20343,11 +13586,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction396
+private class ReduceAction287
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20373,11 +13616,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = psignaturenode1
-                                       p.push(p.go_to(17), node_list)
+                                       p.push(p.go_to(16), node_list)
        end
 init do end
 end
-private class ReduceAction397
+private class ReduceAction288
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20394,11 +13637,11 @@ special ReduceAction
                                                listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction398
+private class ReduceAction289
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20425,11 +13668,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction399
+private class ReduceAction290
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20439,11 +13682,11 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(18), node_list)
+                                       p.push(p.go_to(17), node_list)
        end
 init do end
 end
-private class ReduceAction400
+private class ReduceAction291
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20454,11 +13697,11 @@ special ReduceAction
                                        var pparamnode1 = nodearraylist3
                                        assert pparamnode1 isa PParam
                                        node_list = pparamnode1
-                                       p.push(p.go_to(19), node_list)
+                                       p.push(p.go_to(18), node_list)
        end
 init do end
 end
-private class ReduceAction401
+private class ReduceAction292
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20472,11 +13715,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(20), node_list)
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction402
+private class ReduceAction293
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20493,11 +13736,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pparamnode1
-                                       p.push(p.go_to(20), node_list)
+                                       p.push(p.go_to(19), node_list)
        end
 init do end
 end
-private class ReduceAction403
+private class ReduceAction294
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20517,68 +13760,159 @@ special ReduceAction
                                                tdotdotdotnode4
                                        )
                                        node_list = pparamnode1
+                                       p.push(p.go_to(19), node_list)
+       end
+init do end
+end
+private class ReduceAction295
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist2 
+                                       assert listnode1 isa Array[Object]
+                                       if listnode1 != null then
+                                               if listnode2.is_empty then
+                                                       listnode2 = listnode1
+                                               else
+                                                       listnode2.append(listnode1)
+                                               end
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(20), node_list)
        end
 init do end
 end
-private class ReduceAction404
+private class ReduceAction296
+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 tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa TKwwith
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa PSignature
+                                       var pclosuredeclnode1 = new AClosureDecl.init_aclosuredecl(
+                                               tkwwithnode2,
+                                               null,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               null
+                                       )
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(21), node_list)
+       end
+init do end
+end
+private class ReduceAction297
 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 tkwwithnode2 = nodearraylist2
+                                       var tkwwithnode2 = nodearraylist1
                                        assert tkwwithnode2 isa TKwwith
+                                       var tkwbreaknode3 = nodearraylist2
+                                       assert tkwbreaknode3 isa TKwbreak
                                        var tidnode4 = nodearraylist4
                                        assert tidnode4 isa TId
                                        var psignaturenode5 = nodearraylist5
                                        assert psignaturenode5 isa PSignature
                                        var pclosuredeclnode1 = new AClosureDecl.init_aclosuredecl(
                                                tkwwithnode2,
+                                               tkwbreaknode3,
+                                               tidnode4,
+                                               psignaturenode5,
+                                               null
+                                       )
+                                       node_list = pclosuredeclnode1
+                                       p.push(p.go_to(21), node_list)
+       end
+init do end
+end
+private class ReduceAction298
+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 tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa TKwwith
+                                       var tidnode4 = nodearraylist3
+                                       assert tidnode4 isa TId
+                                       var psignaturenode5 = nodearraylist4
+                                       assert psignaturenode5 isa PSignature
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa PExpr
+                                       var pclosuredeclnode1 = new AClosureDecl.init_aclosuredecl(
+                                               tkwwithnode2,
                                                null,
                                                tidnode4,
-                                               psignaturenode5
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
                                        p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction405
+private class ReduceAction299
 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 tkwwithnode2 = nodearraylist2
+                                       var tkwwithnode2 = nodearraylist1
                                        assert tkwwithnode2 isa TKwwith
-                                       var tkwbreaknode3 = nodearraylist3
+                                       var tkwbreaknode3 = nodearraylist2
                                        assert tkwbreaknode3 isa TKwbreak
-                                       var tidnode4 = nodearraylist5
+                                       var tidnode4 = nodearraylist4
                                        assert tidnode4 isa TId
-                                       var psignaturenode5 = nodearraylist6
+                                       var psignaturenode5 = nodearraylist5
                                        assert psignaturenode5 isa PSignature
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa PExpr
                                        var pclosuredeclnode1 = new AClosureDecl.init_aclosuredecl(
                                                tkwwithnode2,
                                                tkwbreaknode3,
                                                tidnode4,
-                                               psignaturenode5
+                                               psignaturenode5,
+                                               pexprnode6
                                        )
                                        node_list = pclosuredeclnode1
                                        p.push(p.go_to(21), node_list)
        end
 init do end
 end
-private class ReduceAction406
+private class ReduceAction300
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20596,7 +13930,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction407
+private class ReduceAction301
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20628,7 +13962,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction408
+private class ReduceAction302
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20645,7 +13979,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction409
+private class ReduceAction303
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20672,7 +14006,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction410
+private class ReduceAction304
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20687,7 +14021,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction411
+private class ReduceAction305
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20702,7 +14036,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction412
+private class ReduceAction306
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20715,7 +14049,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction413
+private class ReduceAction307
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20738,7 +14072,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction414
+private class ReduceAction308
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20771,30 +14105,38 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction415
+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
+                                       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 ReduceAction416
+private class ReduceAction310
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
                                        var nodearraylist1 = p.pop
-                                       node_list = null
+                                       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 ReduceAction417
+private class ReduceAction311
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20808,7 +14150,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction418
+private class ReduceAction312
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20821,7 +14163,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction419
+private class ReduceAction313
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20834,7 +14176,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction420
+private class ReduceAction314
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20851,7 +14193,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction421
+private class ReduceAction315
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20871,7 +14213,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction422
+private class ReduceAction316
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20888,7 +14230,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction423
+private class ReduceAction317
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20908,7 +14250,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction424
+private class ReduceAction318
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20924,7 +14266,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction425
+private class ReduceAction319
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20941,7 +14283,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction426
+private class ReduceAction320
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20961,7 +14303,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction427
+private class ReduceAction321
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20974,7 +14316,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction428
+private class ReduceAction322
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -20987,7 +14329,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction429
+private class ReduceAction323
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21000,7 +14342,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction430
+private class ReduceAction324
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21013,7 +14355,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction431
+private class ReduceAction325
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21026,7 +14368,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction432
+private class ReduceAction326
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21062,7 +14404,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction433
+private class ReduceAction327
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21095,7 +14437,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction434
+private class ReduceAction328
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21141,7 +14483,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction435
+private class ReduceAction329
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21184,7 +14526,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction436
+private class ReduceAction330
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21213,7 +14555,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction437
+private class ReduceAction331
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21245,7 +14587,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction438
+private class ReduceAction332
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21279,7 +14621,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction439
+private class ReduceAction333
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21310,7 +14652,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction440
+private class ReduceAction334
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21327,7 +14669,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction441
+private class ReduceAction335
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21354,7 +14696,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction442
+private class ReduceAction336
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21380,7 +14722,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction443
+private class ReduceAction337
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21416,7 +14758,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction444
+private class ReduceAction338
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21451,7 +14793,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction445
+private class ReduceAction339
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21496,7 +14838,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction446
+private class ReduceAction340
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21541,7 +14883,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction447
+private class ReduceAction341
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21596,7 +14938,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction448
+private class ReduceAction342
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21620,7 +14962,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction449
+private class ReduceAction343
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21654,7 +14996,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction450
+private class ReduceAction344
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21677,7 +15019,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction451
+private class ReduceAction345
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21703,7 +15045,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction452
+private class ReduceAction346
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21733,7 +15075,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction453
+private class ReduceAction347
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21766,7 +15108,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction454
+private class ReduceAction348
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21796,7 +15138,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction455
+private class ReduceAction349
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21823,7 +15165,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction456
+private class ReduceAction350
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21865,7 +15207,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction457
+private class ReduceAction351
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21904,7 +15246,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction458
+private class ReduceAction352
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21940,7 +15282,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction459
+private class ReduceAction353
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21970,7 +15312,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction460
+private class ReduceAction354
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -21997,7 +15339,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction461
+private class ReduceAction355
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22039,7 +15381,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction462
+private class ReduceAction356
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22078,7 +15420,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction463
+private class ReduceAction357
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22114,7 +15456,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction464
+private class ReduceAction358
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22130,7 +15472,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction465
+private class ReduceAction359
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22146,7 +15488,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction466
+private class ReduceAction360
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22166,7 +15508,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction467
+private class ReduceAction361
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22198,7 +15540,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction468
+private class ReduceAction362
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22226,7 +15568,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction469
+private class ReduceAction363
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22266,7 +15608,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction470
+private class ReduceAction364
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22316,7 +15658,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction471
+private class ReduceAction365
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22344,7 +15686,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction472
+private class ReduceAction366
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22373,7 +15715,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction473
+private class ReduceAction367
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22387,7 +15729,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction474
+private class ReduceAction368
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22398,7 +15740,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction475
+private class ReduceAction369
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22428,36 +15770,14 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction476
-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(39), node_list)
-       end
-init do end
-end
-private class ReduceAction477
+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
@@ -22471,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(40), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
-private class ReduceAction478
+private class ReduceAction371
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22498,11 +15824,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction479
+private class ReduceAction372
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22522,11 +15848,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(41), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
-private class ReduceAction480
+private class ReduceAction373
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22536,11 +15862,11 @@ special ReduceAction
                                        var tidnode1 = nodearraylist1
                                        assert tidnode1 isa TId
                                        node_list = tidnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(41), node_list)
        end
 init do end
 end
-private class ReduceAction481
+private class ReduceAction374
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22549,11 +15875,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction482
+private class ReduceAction375
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22595,11 +15921,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction483
+private class ReduceAction376
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22638,11 +15964,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction484
+private class ReduceAction377
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22678,11 +16004,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       p.push(p.go_to(42), node_list)
        end
 init do end
 end
-private class ReduceAction485
+private class ReduceAction378
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22691,11 +16017,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction486
+private class ReduceAction379
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22732,11 +16058,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction487
+private class ReduceAction380
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22745,11 +16071,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(44), node_list)
        end
 init do end
 end
-private class ReduceAction488
+private class ReduceAction381
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22767,11 +16093,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction489
+private class ReduceAction382
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22789,11 +16115,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction490
+private class ReduceAction383
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22802,11 +16128,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(45), node_list)
        end
 init do end
 end
-private class ReduceAction491
+private class ReduceAction384
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22823,11 +16149,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction492
+private class ReduceAction385
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22836,11 +16162,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(46), node_list)
        end
 init do end
 end
-private class ReduceAction493
+private class ReduceAction386
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22858,11 +16184,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction494
+private class ReduceAction387
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22880,11 +16206,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction495
+private class ReduceAction388
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22902,11 +16228,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction496
+private class ReduceAction389
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22924,11 +16250,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction497
+private class ReduceAction390
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22946,11 +16272,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction498
+private class ReduceAction391
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22968,11 +16294,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction499
+private class ReduceAction392
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -22990,11 +16316,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction500
+private class ReduceAction393
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23012,11 +16338,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction501
+private class ReduceAction394
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23034,11 +16360,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction502
+private class ReduceAction395
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23047,11 +16373,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(47), node_list)
        end
 init do end
 end
-private class ReduceAction503
+private class ReduceAction396
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23069,11 +16395,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction504
+private class ReduceAction397
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23091,11 +16417,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction505
+private class ReduceAction398
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23104,11 +16430,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(48), node_list)
        end
 init do end
 end
-private class ReduceAction506
+private class ReduceAction399
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23126,11 +16452,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction507
+private class ReduceAction400
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23148,11 +16474,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction508
+private class ReduceAction401
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23170,11 +16496,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction509
+private class ReduceAction402
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23183,11 +16509,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(49), node_list)
        end
 init do end
 end
-private class ReduceAction510
+private class ReduceAction403
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23204,11 +16530,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction511
+private class ReduceAction404
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23225,11 +16551,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction512
+private class ReduceAction405
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23238,11 +16564,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(50), node_list)
        end
 init do end
 end
-private class ReduceAction513
+private class ReduceAction406
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23272,11 +16598,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction514
+private class ReduceAction407
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23294,11 +16620,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction515
+private class ReduceAction408
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23313,11 +16639,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction516
+private class ReduceAction409
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23349,11 +16675,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction517
+private class ReduceAction410
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23382,11 +16708,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction518
+private class ReduceAction411
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23411,11 +16737,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction519
+private class ReduceAction412
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23443,11 +16769,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction520
+private class ReduceAction413
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23477,11 +16803,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction521
+private class ReduceAction414
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23508,11 +16834,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction522
+private class ReduceAction415
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23538,11 +16864,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction523
+private class ReduceAction416
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23577,11 +16903,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction524
+private class ReduceAction417
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23604,11 +16930,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction525
+private class ReduceAction418
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23631,11 +16957,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction526
+private class ReduceAction419
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23655,11 +16981,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction527
+private class ReduceAction420
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23671,11 +16997,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction528
+private class ReduceAction421
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23687,11 +17013,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction529
+private class ReduceAction422
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23703,11 +17029,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction530
+private class ReduceAction423
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23719,11 +17045,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction531
+private class ReduceAction424
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23735,11 +17061,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction532
+private class ReduceAction425
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23751,11 +17077,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction533
+private class ReduceAction426
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23767,11 +17093,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction534
+private class ReduceAction427
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23783,11 +17109,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction535
+private class ReduceAction428
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23796,11 +17122,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(51), node_list)
        end
 init do end
 end
-private class ReduceAction536
+private class ReduceAction429
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23811,11 +17137,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction537
+private class ReduceAction430
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23842,11 +17168,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction538
+private class ReduceAction431
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23872,11 +17198,11 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction539
+private class ReduceAction432
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23912,11 +17238,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(53), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction540
+private class ReduceAction433
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23937,11 +17263,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction541
+private class ReduceAction434
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23953,11 +17279,11 @@ special ReduceAction
                                                tstartstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(55), node_list)
+                                       p.push(p.go_to(54), node_list)
        end
 init do end
 end
-private class ReduceAction542
+private class ReduceAction435
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23978,11 +17304,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(56), node_list)
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction543
+private class ReduceAction436
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -23994,11 +17320,11 @@ special ReduceAction
                                                tmidstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(57), node_list)
+                                       p.push(p.go_to(56), node_list)
        end
 init do end
 end
-private class ReduceAction544
+private class ReduceAction437
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24010,11 +17336,11 @@ special ReduceAction
                                                tendstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(58), node_list)
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction545
+private class ReduceAction438
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24031,11 +17357,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction546
+private class ReduceAction439
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24062,11 +17388,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction547
+private class ReduceAction440
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24076,22 +17402,22 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(59), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction548
+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(59), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction549
+private class ReduceAction442
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24108,11 +17434,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction550
+private class ReduceAction443
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24139,11 +17465,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction551
+private class ReduceAction444
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24156,11 +17482,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction552
+private class ReduceAction445
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24170,22 +17496,22 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode1 = new Array[Object]
                                        node_list = listnode1
-                                       p.push(p.go_to(60), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction553
+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(60), node_list)
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction554
+private class ReduceAction447
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24202,11 +17528,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction555
+private class ReduceAction448
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24233,11 +17559,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction556
+private class ReduceAction449
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24249,11 +17575,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist3
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(62), node_list)
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction557
+private class ReduceAction450
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24266,11 +17592,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(63), node_list)
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction558
+private class ReduceAction451
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24296,11 +17622,11 @@ special ReduceAction
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(63), node_list)
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction559
+private class ReduceAction452
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24314,11 +17640,11 @@ special ReduceAction
                                                tclassidnode3
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(64), node_list)
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction560
+private class ReduceAction453
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24342,11 +17668,11 @@ special ReduceAction
                                                tclassidnode4
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(64), node_list)
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction561
+private class ReduceAction454
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24367,11 +17693,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pqualifiednode1
-                                       p.push(p.go_to(64), node_list)
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction562
+private class ReduceAction455
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24382,162 +17708,492 @@ special ReduceAction
                                        var tidnode1 = nodearraylist1
                                        assert tidnode1 isa TId
                                        node_list = tidnode1
+                                       p.push(p.go_to(64), node_list)
+       end
+init do end
+end
+private class ReduceAction456
+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
+                                       var tclassidnode1 = nodearraylist1
+                                       assert tclassidnode1 isa TClassid
+                                       node_list = tclassidnode1
                                        p.push(p.go_to(65), node_list)
        end
 init do end
 end
-private class ReduceAction563
+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(66), node_list)
+       end
+init do end
+end
+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(66), node_list)
+       end
+init do end
+end
+private class ReduceAction459
+special ReduceAction
+       redef meth action(p: Parser)
+       do
+                                       var node_list: Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var pdocnode1 = new ADoc.init_adoc(
+                                               listnode3
+                                       )
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(67), node_list)
+       end
+init do end
+end
+private class ReduceAction460
+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 listnode2 = nodearraylist2 
+                                       assert listnode2 isa Array[Object]
+                                       if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+                                       end
+                                       var pdocnode1 = new ADoc.init_adoc(
+                                               listnode3
+                                       )
+                                       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 nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tclassidnode1 = nodearraylist1
-                                       assert tclassidnode1 isa TClassid
-                                       node_list = tclassidnode1
-                                       p.push(p.go_to(66), node_list)
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
-private class ReduceAction564
+private class ReduceAction467
 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(67), node_list)
+                                       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 ReduceAction565
+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
-                                       p.push(p.go_to(67), 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 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 ReduceAction566
+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 listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1 
-                                       assert listnode2 isa Array[Object]
-                                       if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-                                       end
-                                       var pdocnode1 = new ADoc.init_adoc(
-                                               listnode3
+                                       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 = pdocnode1
-                                       p.push(p.go_to(68), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction567
+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 listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist2 
-                                       assert listnode2 isa Array[Object]
-                                       if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-                                       end
-                                       var pdocnode1 = new ADoc.init_adoc(
-                                               listnode3
+                                       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 = pdocnode1
-                                       p.push(p.go_to(68), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction568
+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(68), 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 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 ReduceAction569
+private class ReduceAction472
 special ReduceAction
        redef meth action(p: Parser)
        do
                                        var node_list: Object = null
-                                       node_list = null
-                                       p.push(p.go_to(69), node_list)
+                                       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(71), node_list)
        end
 init do end
 end
-private class ReduceAction570
+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
-                                       var pdocnode1 = nodearraylist1
-                                       assert pdocnode1 isa PDoc
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(69), 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 ReduceAction571
+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(70), 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 ReduceAction572
+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(70), node_list)
-       end
-init do end
-end
-private class ReduceAction573
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist1 = p.pop
-                                       p.push(p.go_to(70), 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 ReduceAction574
+private class ReduceAction476
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24551,11 +18207,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = ptypenode1
-                                       p.push(p.go_to(71), node_list)
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction575
+private class ReduceAction477
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24564,11 +18220,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction576
+private class ReduceAction478
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24610,11 +18266,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction577
+private class ReduceAction479
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24653,11 +18309,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(72), node_list)
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
-private class ReduceAction578
+private class ReduceAction480
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24666,11 +18322,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction579
+private class ReduceAction481
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24707,11 +18363,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction580
+private class ReduceAction482
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24720,11 +18376,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(75), node_list)
        end
 init do end
 end
-private class ReduceAction581
+private class ReduceAction483
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24742,11 +18398,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction582
+private class ReduceAction484
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24764,11 +18420,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction583
+private class ReduceAction485
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24777,11 +18433,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(76), node_list)
        end
 init do end
 end
-private class ReduceAction584
+private class ReduceAction486
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24798,11 +18454,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction585
+private class ReduceAction487
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24811,11 +18467,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(77), node_list)
        end
 init do end
 end
-private class ReduceAction586
+private class ReduceAction488
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24833,11 +18489,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction587
+private class ReduceAction489
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24855,11 +18511,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction588
+private class ReduceAction490
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24877,11 +18533,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction589
+private class ReduceAction491
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24899,11 +18555,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction590
+private class ReduceAction492
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24921,11 +18577,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction591
+private class ReduceAction493
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24943,11 +18599,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction592
+private class ReduceAction494
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24965,11 +18621,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction593
+private class ReduceAction495
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -24987,11 +18643,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction594
+private class ReduceAction496
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25009,11 +18665,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction595
+private class ReduceAction497
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25022,11 +18678,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(78), node_list)
        end
 init do end
 end
-private class ReduceAction596
+private class ReduceAction498
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25044,11 +18700,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction597
+private class ReduceAction499
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25066,11 +18722,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction598
+private class ReduceAction500
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25079,11 +18735,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(79), node_list)
        end
 init do end
 end
-private class ReduceAction599
+private class ReduceAction501
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25101,11 +18757,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction600
+private class ReduceAction502
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25123,11 +18779,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction601
+private class ReduceAction503
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25145,11 +18801,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction602
+private class ReduceAction504
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25158,11 +18814,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(80), node_list)
        end
 init do end
 end
-private class ReduceAction603
+private class ReduceAction505
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25179,11 +18835,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction604
+private class ReduceAction506
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25200,11 +18856,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       p.push(p.go_to(80), node_list)
        end
 init do end
 end
-private class ReduceAction605
+private class ReduceAction507
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25213,11 +18869,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(81), node_list)
        end
 init do end
 end
-private class ReduceAction606
+private class ReduceAction508
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25247,11 +18903,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(81), node_list)
        end
 init do end
 end
-private class ReduceAction607
+private class ReduceAction509
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25269,11 +18925,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction608
+private class ReduceAction510
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25288,11 +18944,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction609
+private class ReduceAction511
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25324,11 +18980,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction610
+private class ReduceAction512
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25357,11 +19013,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction611
+private class ReduceAction513
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25386,11 +19042,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction612
+private class ReduceAction514
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25418,11 +19074,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction613
+private class ReduceAction515
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25452,11 +19108,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction614
+private class ReduceAction516
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25483,11 +19139,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction615
+private class ReduceAction517
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25522,11 +19178,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction616
+private class ReduceAction518
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25538,11 +19194,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction617
+private class ReduceAction519
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25554,11 +19210,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction618
+private class ReduceAction520
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25570,11 +19226,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction619
+private class ReduceAction521
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25586,11 +19242,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction620
+private class ReduceAction522
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25602,11 +19258,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction621
+private class ReduceAction523
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25618,11 +19274,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction622
+private class ReduceAction524
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25634,11 +19290,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction623
+private class ReduceAction525
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25650,11 +19306,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction624
+private class ReduceAction526
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25663,11 +19319,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(82), node_list)
        end
 init do end
 end
-private class ReduceAction625
+private class ReduceAction527
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25678,11 +19334,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist2
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction626
+private class ReduceAction528
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25709,11 +19365,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(82), node_list)
        end
 init do end
 end
-private class ReduceAction627
+private class ReduceAction529
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25722,11 +19378,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(83), node_list)
        end
 init do end
 end
-private class ReduceAction628
+private class ReduceAction530
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25745,11 +19401,11 @@ special ReduceAction
                                                listnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction629
+private class ReduceAction531
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25778,34 +19434,42 @@ special ReduceAction
                                                listnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(83), node_list)
        end
 init do end
 end
-private class ReduceAction630
+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(82), 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 ReduceAction631
+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(82), 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 ReduceAction632
+private class ReduceAction534
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25814,11 +19478,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(84), node_list)
        end
 init do end
 end
-private class ReduceAction633
+private class ReduceAction535
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25827,11 +19491,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(84), node_list)
        end
 init do end
 end
-private class ReduceAction634
+private class ReduceAction536
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25844,11 +19508,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction635
+private class ReduceAction537
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25864,11 +19528,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction636
+private class ReduceAction538
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25881,11 +19545,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction637
+private class ReduceAction539
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25901,11 +19565,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction638
+private class ReduceAction540
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25917,11 +19581,11 @@ special ReduceAction
                                                tkwabortnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction639
+private class ReduceAction541
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25934,11 +19598,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction640
+private class ReduceAction542
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25954,11 +19618,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction641
+private class ReduceAction543
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25967,11 +19631,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(84), node_list)
        end
 init do end
 end
-private class ReduceAction642
+private class ReduceAction544
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25980,11 +19644,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(84), node_list)
        end
 init do end
 end
-private class ReduceAction643
+private class ReduceAction545
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -25993,11 +19657,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(84), node_list)
        end
 init do end
 end
-private class ReduceAction644
+private class ReduceAction546
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26006,11 +19670,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(84), node_list)
        end
 init do end
 end
-private class ReduceAction645
+private class ReduceAction547
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26019,11 +19683,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(84), node_list)
        end
 init do end
 end
-private class ReduceAction646
+private class ReduceAction548
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26055,11 +19719,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction647
+private class ReduceAction549
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26088,11 +19752,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction648
+private class ReduceAction550
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26134,11 +19798,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction649
+private class ReduceAction551
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26177,11 +19841,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction650
+private class ReduceAction552
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26206,11 +19870,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction651
+private class ReduceAction553
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26238,11 +19902,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction652
+private class ReduceAction554
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26272,11 +19936,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction653
+private class ReduceAction555
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26303,11 +19967,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(84), node_list)
        end
 init do end
 end
-private class ReduceAction654
+private class ReduceAction556
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26320,11 +19984,11 @@ special ReduceAction
                                                listnode2.add(pclosuredefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction655
+private class ReduceAction557
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26347,11 +20011,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(85), node_list)
        end
 init do end
 end
-private class ReduceAction656
+private class ReduceAction558
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26373,11 +20037,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction657
+private class ReduceAction559
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26409,11 +20073,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pclosuredefnode1
-                                       p.push(p.go_to(85), node_list)
+                                       p.push(p.go_to(86), node_list)
        end
 init do end
 end
-private class ReduceAction658
+private class ReduceAction560
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26432,11 +20096,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(86), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction659
+private class ReduceAction561
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26458,11 +20122,11 @@ special ReduceAction
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(86), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction660
+private class ReduceAction562
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26488,11 +20152,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(86), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction661
+private class ReduceAction563
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26521,11 +20185,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(86), node_list)
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction662
+private class ReduceAction564
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26551,11 +20215,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction663
+private class ReduceAction565
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26578,11 +20242,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction664
+private class ReduceAction566
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26620,11 +20284,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction665
+private class ReduceAction567
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26659,11 +20323,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction666
+private class ReduceAction568
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26695,11 +20359,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction667
+private class ReduceAction569
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26725,11 +20389,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction668
+private class ReduceAction570
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26752,11 +20416,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction669
+private class ReduceAction571
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26794,11 +20458,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction670
+private class ReduceAction572
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26833,11 +20497,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction671
+private class ReduceAction573
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26869,11 +20533,11 @@ special ReduceAction
                                                pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction672
+private class ReduceAction574
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26889,11 +20553,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction673
+private class ReduceAction575
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26921,11 +20585,11 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction674
+private class ReduceAction576
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26951,36 +20615,48 @@ special ReduceAction
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction675
+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(91), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction676
+private class ReduceAction578
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -26997,11 +20673,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction677
+private class ReduceAction579
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27021,11 +20697,11 @@ special ReduceAction
                                                pexprnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(92), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction678
+private class ReduceAction580
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27034,11 +20710,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction679
+private class ReduceAction581
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27080,11 +20756,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction680
+private class ReduceAction582
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27123,11 +20799,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction681
+private class ReduceAction583
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27163,11 +20839,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(93), node_list)
+                                       p.push(p.go_to(94), node_list)
        end
 init do end
 end
-private class ReduceAction682
+private class ReduceAction584
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27176,11 +20852,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction683
+private class ReduceAction585
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27222,11 +20898,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
+                                       p.push(p.go_to(95), node_list)
        end
 init do end
 end
-private class ReduceAction684
+private class ReduceAction586
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27265,61 +20941,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(94), node_list)
-       end
-init do end
-end
-private class ReduceAction685
-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(95), node_list)
-       end
-init do end
-end
-private class ReduceAction686
-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(95), node_list)
        end
 init do end
 end
-private class ReduceAction687
+private class ReduceAction587
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27332,7 +20958,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction688
+private class ReduceAction588
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27378,7 +21004,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction689
+private class ReduceAction589
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27421,7 +21047,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction690
+private class ReduceAction590
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27434,7 +21060,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction691
+private class ReduceAction591
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27475,7 +21101,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction692
+private class ReduceAction592
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27488,7 +21114,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction693
+private class ReduceAction593
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27510,7 +21136,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction694
+private class ReduceAction594
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27532,7 +21158,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction695
+private class ReduceAction595
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27545,7 +21171,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction696
+private class ReduceAction596
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27566,7 +21192,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction697
+private class ReduceAction597
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27579,7 +21205,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction698
+private class ReduceAction598
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27601,7 +21227,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction699
+private class ReduceAction599
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27623,7 +21249,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction700
+private class ReduceAction600
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27645,7 +21271,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction701
+private class ReduceAction601
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27667,7 +21293,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction702
+private class ReduceAction602
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27689,7 +21315,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction703
+private class ReduceAction603
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27711,7 +21337,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction704
+private class ReduceAction604
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27733,7 +21359,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction705
+private class ReduceAction605
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27755,7 +21381,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction706
+private class ReduceAction606
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27777,7 +21403,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction707
+private class ReduceAction607
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27790,7 +21416,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction708
+private class ReduceAction608
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27812,7 +21438,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction709
+private class ReduceAction609
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27834,7 +21460,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction710
+private class ReduceAction610
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27847,7 +21473,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction711
+private class ReduceAction611
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27869,7 +21495,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction712
+private class ReduceAction612
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27891,7 +21517,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction713
+private class ReduceAction613
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27913,7 +21539,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction714
+private class ReduceAction614
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27926,7 +21552,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction715
+private class ReduceAction615
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27947,7 +21573,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction716
+private class ReduceAction616
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27968,7 +21594,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction717
+private class ReduceAction617
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -27981,7 +21607,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction718
+private class ReduceAction618
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28015,7 +21641,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction719
+private class ReduceAction619
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28037,7 +21663,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction720
+private class ReduceAction620
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28056,7 +21682,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction721
+private class ReduceAction621
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28092,7 +21718,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction722
+private class ReduceAction622
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28125,7 +21751,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction723
+private class ReduceAction623
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28154,7 +21780,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction724
+private class ReduceAction624
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28186,7 +21812,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction725
+private class ReduceAction625
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28220,7 +21846,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction726
+private class ReduceAction626
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28251,7 +21877,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction727
+private class ReduceAction627
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28290,7 +21916,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction728
+private class ReduceAction628
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28306,7 +21932,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction729
+private class ReduceAction629
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28322,7 +21948,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction730
+private class ReduceAction630
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28338,7 +21964,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction731
+private class ReduceAction631
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28354,7 +21980,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction732
+private class ReduceAction632
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28370,7 +21996,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction733
+private class ReduceAction633
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28386,7 +22012,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction734
+private class ReduceAction634
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28402,7 +22028,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction735
+private class ReduceAction635
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28418,7 +22044,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction736
+private class ReduceAction636
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28431,7 +22057,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction737
+private class ReduceAction637
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28462,25 +22088,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction738
-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(106), node_list)
-       end
-init do end
-end
-private class ReduceAction739
+private class ReduceAction638
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28489,11 +22097,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(106), node_list)
        end
 init do end
 end
-private class ReduceAction740
+private class ReduceAction639
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28535,11 +22143,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction741
+private class ReduceAction640
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28578,11 +22186,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction742
+private class ReduceAction641
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28591,11 +22199,11 @@ special ReduceAction
                                        var pexprnode1 = nodearraylist1
                                        assert pexprnode1 isa PExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction743
+private class ReduceAction642
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28632,11 +22240,11 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction744
+private class ReduceAction643
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28645,11 +22253,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(108), node_list)
        end
 init do end
 end
-private class ReduceAction745
+private class ReduceAction644
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28667,11 +22275,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction746
+private class ReduceAction645
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28689,11 +22297,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction747
+private class ReduceAction646
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28702,11 +22310,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(109), node_list)
        end
 init do end
 end
-private class ReduceAction748
+private class ReduceAction647
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28723,11 +22331,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction749
+private class ReduceAction648
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28736,11 +22344,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(110), node_list)
        end
 init do end
 end
-private class ReduceAction750
+private class ReduceAction649
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28758,11 +22366,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction751
+private class ReduceAction650
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28780,11 +22388,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction752
+private class ReduceAction651
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28802,11 +22410,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction753
+private class ReduceAction652
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28824,11 +22432,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction754
+private class ReduceAction653
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28846,11 +22454,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction755
+private class ReduceAction654
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28868,11 +22476,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction756
+private class ReduceAction655
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28890,11 +22498,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction757
+private class ReduceAction656
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28912,11 +22520,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction758
+private class ReduceAction657
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28934,11 +22542,11 @@ special ReduceAction
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction759
+private class ReduceAction658
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28947,11 +22555,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(111), node_list)
        end
 init do end
 end
-private class ReduceAction760
+private class ReduceAction659
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28969,11 +22577,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction761
+private class ReduceAction660
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -28991,11 +22599,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction762
+private class ReduceAction661
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29004,11 +22612,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(112), node_list)
        end
 init do end
 end
-private class ReduceAction763
+private class ReduceAction662
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29026,11 +22634,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction764
+private class ReduceAction663
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29048,11 +22656,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction765
+private class ReduceAction664
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29070,11 +22678,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction766
+private class ReduceAction665
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29083,11 +22691,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(113), node_list)
        end
 init do end
 end
-private class ReduceAction767
+private class ReduceAction666
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29104,11 +22712,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction768
+private class ReduceAction667
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29125,11 +22733,11 @@ special ReduceAction
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction769
+private class ReduceAction668
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29138,11 +22746,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(114), node_list)
        end
 init do end
 end
-private class ReduceAction770
+private class ReduceAction669
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29172,11 +22780,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction771
+private class ReduceAction670
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29192,11 +22800,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction772
+private class ReduceAction671
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29226,11 +22834,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction773
+private class ReduceAction672
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29255,11 +22863,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction774
+private class ReduceAction673
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29287,11 +22895,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction775
+private class ReduceAction674
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29319,11 +22927,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction776
+private class ReduceAction675
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29358,11 +22966,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction777
+private class ReduceAction676
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29374,11 +22982,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction778
+private class ReduceAction677
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29390,11 +22998,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction779
+private class ReduceAction678
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29406,11 +23014,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction780
+private class ReduceAction679
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29422,11 +23030,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction781
+private class ReduceAction680
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29438,11 +23046,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction782
+private class ReduceAction681
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29454,11 +23062,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction783
+private class ReduceAction682
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29470,11 +23078,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction784
+private class ReduceAction683
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29486,11 +23094,11 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction785
+private class ReduceAction684
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29499,11 +23107,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(115), node_list)
        end
 init do end
 end
-private class ReduceAction786
+private class ReduceAction685
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29530,11 +23138,11 @@ special ReduceAction
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction787
+private class ReduceAction686
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29545,11 +23153,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(116), node_list)
        end
 init do end
 end
-private class ReduceAction788
+private class ReduceAction687
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29557,11 +23165,11 @@ special ReduceAction
                                        var pexprnode1 = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction789
+private class ReduceAction688
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29570,11 +23178,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(117), node_list)
        end
 init do end
 end
-private class ReduceAction790
+private class ReduceAction689
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29616,11 +23224,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction791
+private class ReduceAction690
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29659,11 +23267,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction792
+private class ReduceAction691
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29672,11 +23280,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(118), node_list)
        end
 init do end
 end
-private class ReduceAction793
+private class ReduceAction692
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29718,11 +23326,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction794
+private class ReduceAction693
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29761,11 +23369,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction795
+private class ReduceAction694
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29778,11 +23386,11 @@ special ReduceAction
                                                listnode2.add(pimportnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction796
+private class ReduceAction695
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29805,11 +23413,11 @@ special ReduceAction
                                                listnode3.add(pimportnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction797
+private class ReduceAction696
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29822,11 +23430,11 @@ special ReduceAction
                                                listnode2.add(pclassdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction798
+private class ReduceAction697
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29849,11 +23457,11 @@ special ReduceAction
                                                listnode3.add(pclassdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction799
+private class ReduceAction698
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29866,11 +23474,11 @@ special ReduceAction
                                                listnode2.add(psuperclassnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction800
+private class ReduceAction699
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29893,11 +23501,11 @@ special ReduceAction
                                                listnode3.add(psuperclassnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction801
+private class ReduceAction700
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29910,11 +23518,11 @@ special ReduceAction
                                                listnode2.add(pformaldefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction802
+private class ReduceAction701
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29937,11 +23545,11 @@ special ReduceAction
                                                listnode3.add(pformaldefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction803
+private class ReduceAction702
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29954,11 +23562,11 @@ special ReduceAction
                                                listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction804
+private class ReduceAction703
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -29981,28 +23589,28 @@ special ReduceAction
                                                listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction805
+private class ReduceAction704
 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)
+                                       var pparamnode1 = nodearraylist1
+                                       assert pparamnode1 isa PParam
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction806
+private class ReduceAction705
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30012,8 +23620,8 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1 
                                        assert listnode1 isa Array[Object]
-                                       var ppropdefnode2 = nodearraylist2
-                                       assert ppropdefnode2 isa PPropdef
+                                       var pparamnode2 = nodearraylist2
+                                       assert pparamnode2 isa PParam
                                        if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -30021,15 +23629,15 @@ special ReduceAction
                                                        listnode3.append(listnode1)
                                                end
                                        end
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
+                                       if pparamnode2 != null then
+                                               listnode3.add(pparamnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction807
+private class ReduceAction706
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30042,11 +23650,11 @@ special ReduceAction
                                                listnode2.add(pclosuredeclnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction808
+private class ReduceAction707
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30069,55 +23677,11 @@ special ReduceAction
                                                listnode3.add(pclosuredeclnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(126), node_list)
-       end
-init do end
-end
-private class ReduceAction809
-special ReduceAction
-       redef meth action(p: Parser)
-       do
-                                       var node_list: Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       assert pparamnode1 isa PParam
-                                       if pparamnode1 != null then
-                                               listnode2.add(pparamnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(127), node_list)
-       end
-init do end
-end
-private class ReduceAction810
-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 pparamnode2 = nodearraylist2
-                                       assert pparamnode2 isa PParam
-                                       if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
-                                               else
-                                                       listnode3.append(listnode1)
-                                               end
-                                       end
-                                       if pparamnode2 != null then
-                                               listnode3.add(pparamnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction811
+private class ReduceAction708
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30130,11 +23694,11 @@ special ReduceAction
                                                listnode2.add(ptypenode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction812
+private class ReduceAction709
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30157,11 +23721,11 @@ special ReduceAction
                                                listnode3.add(ptypenode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction813
+private class ReduceAction710
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30174,11 +23738,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction814
+private class ReduceAction711
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30201,11 +23765,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction815
+private class ReduceAction712
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30222,11 +23786,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction816
+private class ReduceAction713
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30253,11 +23817,11 @@ special ReduceAction
                                                end
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction817
+private class ReduceAction714
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30270,11 +23834,11 @@ special ReduceAction
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction818
+private class ReduceAction715
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30297,11 +23861,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction819
+private class ReduceAction716
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30314,11 +23878,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction820
+private class ReduceAction717
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30341,11 +23905,11 @@ special ReduceAction
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction821
+private class ReduceAction718
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30358,11 +23922,11 @@ special ReduceAction
                                                listnode2.add(tcommentnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction822
+private class ReduceAction719
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30385,11 +23949,11 @@ special ReduceAction
                                                listnode3.add(tcommentnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction823
+private class ReduceAction720
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30402,11 +23966,11 @@ special ReduceAction
                                                listnode2.add(teolnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(134), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction824
+private class ReduceAction721
 special ReduceAction
        redef meth action(p: Parser)
        do
@@ -30429,7 +23993,51 @@ special ReduceAction
                                                listnode3.add(teolnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(134), 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