parser: remove spaces errors in generated files
[nit.git] / src / parser / parser.nit
index 131eba1..6a59312 100644 (file)
@@ -1,5 +1,5 @@
 # Parser.
-# This file was generated by SableCC (http://www.sablecc.org/). 
+# This file was generated by SableCC (http://www.sablecc.org/).
 package parser
 
 intrude import parser_prod
@@ -11,7 +11,7 @@ private class State
        readable writable var _state: Int
 
        # The node stored with the state in the stack
-       readable writable var _nodes: nullable Object 
+       readable writable var _nodes: nullable Object
 
        init(state: Int, nodes: nullable Object)
        do
@@ -105,7 +105,7 @@ special ParserTable
                        var last_pos = token.location.column_start
                        var last_line = token.location.line_start
 
-                       if token isa PError then
+                       if token isa AError then
                                return new Start(null, token)
                        end
 
@@ -140,13 +140,13 @@ special ParserTable
                                var node2 = lexer.next
                                assert node2 isa EOF
                                var node1 = pop
-                               assert node1 isa PModule
+                               assert node1 isa AModule
                                var node = new Start(node1, node2)
                                (new SearchTokensVisitor).enter_visit(node)
                                return node
                        else if action_type == 3 then # ERROR
                                var location = new Location(lexer.filename, last_line, last_line, last_pos, last_pos)
-                               var node2 = new PError.init_error(error_messages[errors[action_value]],location)
+                               var node2 = new AError.init_error(error_messages[errors[action_value]],location)
                                var node = new Start(null, node2)
                                return node
                        end
@@ -895,7 +895,96 @@ special ParserTable
                        new ReduceAction734,
                        new ReduceAction735,
                        new ReduceAction736,
-                       new ReduceAction737
+                       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 ReduceAction825,
+                       new ReduceAction826
                )
        end
 end
@@ -905,7 +994,7 @@ private class SearchTokensVisitor
 special Visitor
        var _untokenned_nodes: Array[Prod]
        var _last_token: nullable Token = null
-       redef fun visit(n: nullable PNode)
+       redef fun visit(n: nullable ANode)
        do
                if n == null then
                        return
@@ -973,7 +1062,7 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode4 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                ppackagedeclnode2,
                                                listnode3,
@@ -1021,7 +1110,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode5 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -1078,7 +1167,7 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode5 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
 #                                      if listnode4 != null then
@@ -1146,7 +1235,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -1186,7 +1275,7 @@ special ReduceAction
                                        var listnode7 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        if ppropdefnode5 != null then
                                                listnode6.add(ppropdefnode5)
                                        end
@@ -1218,7 +1307,7 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
                                        if ppropdefnode5 != null then
@@ -1258,10 +1347,10 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode6 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        if ppropdefnode5 != null then
                                                listnode6.add(ppropdefnode5)
                                        end
@@ -1293,10 +1382,10 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        var listnode6 = nodearraylist4
                                        assert listnode6 isa Array[Object]
                                        if ppropdefnode5 != null then
@@ -1346,7 +1435,7 @@ special ReduceAction
 #                                      end
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -1388,7 +1477,7 @@ special ReduceAction
 #                                      end
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist4
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -1429,7 +1518,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -1441,7 +1530,7 @@ special ReduceAction
 #                                      end
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -1474,7 +1563,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -1486,7 +1575,7 @@ special ReduceAction
 #                                      end
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist5
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -1529,7 +1618,7 @@ special ReduceAction
                                        assert listnode4 isa Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -1571,7 +1660,7 @@ special ReduceAction
                                        assert listnode4 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist4
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -1619,12 +1708,12 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -1664,12 +1753,12 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist5
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -1729,7 +1818,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        if ppropdefnode7 != null then
                                                listnode8.add(ppropdefnode7)
                                        end
@@ -1781,7 +1870,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        var listnode8 = nodearraylist5
                                        assert listnode8 isa Array[Object]
                                        if ppropdefnode7 != null then
@@ -1830,7 +1919,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -1844,7 +1933,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        if ppropdefnode7 != null then
                                                listnode8.add(ppropdefnode7)
                                        end
@@ -1885,7 +1974,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -1899,7 +1988,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        var listnode8 = nodearraylist6
                                        assert listnode8 isa Array[Object]
                                        if ppropdefnode7 != null then
@@ -1944,7 +2033,7 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode5 = new Array[Object]
                                        var pclassdefnode4 = nodearraylist1
-                                       assert pclassdefnode4 isa nullable PClassdef
+                                       assert pclassdefnode4 isa nullable AClassdef
                                        if pclassdefnode4 != null then
                                                listnode5.add(pclassdefnode4)
                                        end
@@ -1968,9 +2057,9 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode5 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var pclassdefnode4 = nodearraylist2
-                                       assert pclassdefnode4 isa nullable PClassdef
+                                       assert pclassdefnode4 isa nullable AClassdef
                                        if pclassdefnode4 != null then
                                                listnode5.add(pclassdefnode4)
                                        end
@@ -2003,7 +2092,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable PClassdef
+                                       assert pclassdefnode5 isa nullable AClassdef
                                        if pclassdefnode5 != null then
                                                listnode6.add(pclassdefnode5)
                                        end
@@ -2028,7 +2117,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -2039,7 +2128,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var pclassdefnode5 = nodearraylist3
-                                       assert pclassdefnode5 isa nullable PClassdef
+                                       assert pclassdefnode5 isa nullable AClassdef
                                        if pclassdefnode5 != null then
                                                listnode6.add(pclassdefnode5)
                                        end
@@ -2065,7 +2154,7 @@ special ReduceAction
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
                                        var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable PClassdef
+                                       assert pclassdefnode5 isa nullable AClassdef
 #                                      if listnode4 != null then
                                                if listnode6.is_empty then
                                                        listnode6 = listnode4
@@ -2097,11 +2186,11 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
                                        var pclassdefnode5 = nodearraylist3
-                                       assert pclassdefnode5 isa nullable PClassdef
+                                       assert pclassdefnode5 isa nullable AClassdef
 #                                      if listnode4 != null then
                                                if listnode6.is_empty then
                                                        listnode6 = listnode4
@@ -2144,7 +2233,7 @@ special ReduceAction
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
                                        var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable PClassdef
+                                       assert pclassdefnode6 isa nullable AClassdef
 #                                      if listnode5 != null then
                                                if listnode7.is_empty then
                                                        listnode7 = listnode5
@@ -2177,7 +2266,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -2190,7 +2279,7 @@ special ReduceAction
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
                                        var pclassdefnode6 = nodearraylist4
-                                       assert pclassdefnode6 isa nullable PClassdef
+                                       assert pclassdefnode6 isa nullable AClassdef
 #                                      if listnode5 != null then
                                                if listnode7.is_empty then
                                                        listnode7 = listnode5
@@ -2223,7 +2312,7 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        if ppropdefnode5 != null then
                                                listnode6.add(ppropdefnode5)
                                        end
@@ -2231,7 +2320,7 @@ special ReduceAction
                                                listnode6
                                        )
                                        var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable PClassdef
+                                       assert pclassdefnode7 isa nullable AClassdef
                                        if pclassdefnode4 != null then
                                                listnode8.add(pclassdefnode4)
                                        end
@@ -2261,7 +2350,7 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist1
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
                                        if ppropdefnode5 != null then
@@ -2278,7 +2367,7 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable PClassdef
+                                       assert pclassdefnode8 isa nullable AClassdef
                                        if pclassdefnode4 != null then
                                                listnode9.add(pclassdefnode4)
                                        end
@@ -2307,10 +2396,10 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode6 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        if ppropdefnode5 != null then
                                                listnode6.add(ppropdefnode5)
                                        end
@@ -2318,7 +2407,7 @@ special ReduceAction
                                                listnode6
                                        )
                                        var pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable PClassdef
+                                       assert pclassdefnode7 isa nullable AClassdef
                                        if pclassdefnode4 != null then
                                                listnode8.add(pclassdefnode4)
                                        end
@@ -2348,10 +2437,10 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode5 = nodearraylist2
-                                       assert ppropdefnode5 isa nullable PPropdef
+                                       assert ppropdefnode5 isa nullable APropdef
                                        var listnode6 = nodearraylist4
                                        assert listnode6 isa Array[Object]
                                        if ppropdefnode5 != null then
@@ -2368,7 +2457,7 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable PClassdef
+                                       assert pclassdefnode8 isa nullable AClassdef
                                        if pclassdefnode4 != null then
                                                listnode9.add(pclassdefnode4)
                                        end
@@ -2407,7 +2496,7 @@ special ReduceAction
 #                                      end
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -2415,7 +2504,7 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable PClassdef
+                                       assert pclassdefnode8 isa nullable AClassdef
                                        if pclassdefnode5 != null then
                                                listnode9.add(pclassdefnode5)
                                        end
@@ -2455,7 +2544,7 @@ special ReduceAction
 #                                      end
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist4
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -2472,7 +2561,7 @@ special ReduceAction
                                                listnode8
                                        )
                                        var pclassdefnode9 = nodearraylist5
-                                       assert pclassdefnode9 isa nullable PClassdef
+                                       assert pclassdefnode9 isa nullable AClassdef
                                        if pclassdefnode5 != null then
                                                listnode10.add(pclassdefnode5)
                                        end
@@ -2502,7 +2591,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -2514,7 +2603,7 @@ special ReduceAction
 #                                      end
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -2522,7 +2611,7 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable PClassdef
+                                       assert pclassdefnode8 isa nullable AClassdef
                                        if pclassdefnode5 != null then
                                                listnode9.add(pclassdefnode5)
                                        end
@@ -2553,7 +2642,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -2565,7 +2654,7 @@ special ReduceAction
 #                                      end
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist5
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -2582,7 +2671,7 @@ special ReduceAction
                                                listnode8
                                        )
                                        var pclassdefnode9 = nodearraylist6
-                                       assert pclassdefnode9 isa nullable PClassdef
+                                       assert pclassdefnode9 isa nullable AClassdef
                                        if pclassdefnode5 != null then
                                                listnode10.add(pclassdefnode5)
                                        end
@@ -2614,7 +2703,7 @@ special ReduceAction
                                        assert listnode4 isa Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -2622,7 +2711,7 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable PClassdef
+                                       assert pclassdefnode8 isa nullable AClassdef
 #                                      if listnode4 != null then
                                                if listnode9.is_empty then
                                                        listnode9 = listnode4
@@ -2662,7 +2751,7 @@ special ReduceAction
                                        assert listnode4 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist2
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist4
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -2679,7 +2768,7 @@ special ReduceAction
                                                listnode8
                                        )
                                        var pclassdefnode9 = nodearraylist5
-                                       assert pclassdefnode9 isa nullable PClassdef
+                                       assert pclassdefnode9 isa nullable AClassdef
 #                                      if listnode4 != null then
                                                if listnode10.is_empty then
                                                        listnode10 = listnode4
@@ -2716,12 +2805,12 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
                                        var listnode7 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        if ppropdefnode6 != null then
                                                listnode7.add(ppropdefnode6)
                                        end
@@ -2729,7 +2818,7 @@ special ReduceAction
                                                listnode7
                                        )
                                        var pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable PClassdef
+                                       assert pclassdefnode8 isa nullable AClassdef
 #                                      if listnode4 != null then
                                                if listnode9.is_empty then
                                                        listnode9 = listnode4
@@ -2767,12 +2856,12 @@ special ReduceAction
                                        var listnode3 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode6 = nodearraylist3
-                                       assert ppropdefnode6 isa nullable PPropdef
+                                       assert ppropdefnode6 isa nullable APropdef
                                        var listnode7 = nodearraylist5
                                        assert listnode7 isa Array[Object]
                                        if ppropdefnode6 != null then
@@ -2789,7 +2878,7 @@ special ReduceAction
                                                listnode8
                                        )
                                        var pclassdefnode9 = nodearraylist6
-                                       assert pclassdefnode9 isa nullable PClassdef
+                                       assert pclassdefnode9 isa nullable AClassdef
 #                                      if listnode4 != null then
                                                if listnode10.is_empty then
                                                        listnode10 = listnode4
@@ -2838,7 +2927,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        if ppropdefnode7 != null then
                                                listnode8.add(ppropdefnode7)
                                        end
@@ -2846,7 +2935,7 @@ special ReduceAction
                                                listnode8
                                        )
                                        var pclassdefnode9 = nodearraylist5
-                                       assert pclassdefnode9 isa nullable PClassdef
+                                       assert pclassdefnode9 isa nullable AClassdef
 #                                      if listnode5 != null then
                                                if listnode10.is_empty then
                                                        listnode10 = listnode5
@@ -2896,7 +2985,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist3
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        var listnode8 = nodearraylist5
                                        assert listnode8 isa Array[Object]
                                        if ppropdefnode7 != null then
@@ -2913,7 +3002,7 @@ special ReduceAction
                                                listnode9
                                        )
                                        var pclassdefnode10 = nodearraylist6
-                                       assert pclassdefnode10 isa nullable PClassdef
+                                       assert pclassdefnode10 isa nullable AClassdef
 #                                      if listnode5 != null then
                                                if listnode11.is_empty then
                                                        listnode11 = listnode5
@@ -2951,7 +3040,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -2965,7 +3054,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode8 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        if ppropdefnode7 != null then
                                                listnode8.add(ppropdefnode7)
                                        end
@@ -2973,7 +3062,7 @@ special ReduceAction
                                                listnode8
                                        )
                                        var pclassdefnode9 = nodearraylist6
-                                       assert pclassdefnode9 isa nullable PClassdef
+                                       assert pclassdefnode9 isa nullable AClassdef
 #                                      if listnode5 != null then
                                                if listnode10.is_empty then
                                                        listnode10 = listnode5
@@ -3012,7 +3101,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var ppackagedeclnode2 = nodearraylist1
-                                       assert ppackagedeclnode2 isa nullable PPackagedecl
+                                       assert ppackagedeclnode2 isa nullable APackagedecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -3026,7 +3115,7 @@ special ReduceAction
                                        assert listnode5 isa Array[Object]
                                        var listnode9 = new Array[Object]
                                        var ppropdefnode7 = nodearraylist4
-                                       assert ppropdefnode7 isa nullable PPropdef
+                                       assert ppropdefnode7 isa nullable APropdef
                                        var listnode8 = nodearraylist6
                                        assert listnode8 isa Array[Object]
                                        if ppropdefnode7 != null then
@@ -3043,7 +3132,7 @@ special ReduceAction
                                                listnode9
                                        )
                                        var pclassdefnode10 = nodearraylist7
-                                       assert pclassdefnode10 isa nullable PClassdef
+                                       assert pclassdefnode10 isa nullable AClassdef
 #                                      if listnode5 != null then
                                                if listnode11.is_empty then
                                                        listnode11 = listnode5
@@ -3078,7 +3167,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwpackagenode3 = nodearraylist2
                                        assert tkwpackagenode3 isa nullable TKwpackage
                                        var tidnode4 = nodearraylist4
@@ -3105,7 +3194,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable PVisibility
+                                       assert pvisibilitynode2 isa nullable AVisibility
                                        var tkwimportnode3 = nodearraylist3
                                        assert tkwimportnode3 isa nullable TKwimport
                                        var tidnode4 = nodearraylist5
@@ -3132,7 +3221,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable PVisibility
+                                       assert pvisibilitynode2 isa nullable AVisibility
                                        var tkwimportnode3 = nodearraylist3
                                        assert tkwimportnode3 isa nullable TKwimport
                                        var tkwendnode4 = nodearraylist5
@@ -3155,7 +3244,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var ppropdefnode2 = nodearraylist1
-                                       assert ppropdefnode2 isa nullable PPropdef
+                                       assert ppropdefnode2 isa nullable APropdef
                                        if ppropdefnode2 != null then
                                                listnode3.add(ppropdefnode2)
                                        end
@@ -3188,7 +3277,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
                                        var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable PExpr
+                                       assert pexprnode4 isa nullable AExpr
                                        if pexprnode4 != null then
                                                listnode5.add(pexprnode4)
                                        end
@@ -3215,7 +3304,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode6 = new Array[Object]
                                        var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable PExpr
+                                       assert pexprnode4 isa nullable AExpr
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
                                        if pexprnode4 != null then
@@ -3256,11 +3345,11 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
@@ -3295,13 +3384,13 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode9 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
@@ -3336,11 +3425,11 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist6
@@ -3385,13 +3474,13 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist7
@@ -3435,11 +3524,11 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode8 = nodearraylist6
@@ -3484,13 +3573,13 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode8 = nodearraylist7
@@ -3535,11 +3624,11 @@ special ReduceAction
                                        var listnode10 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist6
@@ -3594,13 +3683,13 @@ special ReduceAction
                                        var listnode10 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist7
@@ -3654,15 +3743,15 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var ppropdefnode9 = nodearraylist6
-                                       assert ppropdefnode9 isa nullable PPropdef
+                                       assert ppropdefnode9 isa nullable APropdef
                                        if ppropdefnode9 != null then
                                                listnode10.add(ppropdefnode9)
                                        end
@@ -3700,15 +3789,15 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var ppropdefnode9 = nodearraylist6
-                                       assert ppropdefnode9 isa nullable PPropdef
+                                       assert ppropdefnode9 isa nullable APropdef
                                        var listnode10 = nodearraylist8
                                        assert listnode10 isa Array[Object]
                                        if ppropdefnode9 != null then
@@ -3755,17 +3844,17 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode10 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var ppropdefnode9 = nodearraylist7
-                                       assert ppropdefnode9 isa nullable PPropdef
+                                       assert ppropdefnode9 isa nullable APropdef
                                        if ppropdefnode9 != null then
                                                listnode10.add(ppropdefnode9)
                                        end
@@ -3804,17 +3893,17 @@ special ReduceAction
                                        var listnode8 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var ppropdefnode9 = nodearraylist7
-                                       assert ppropdefnode9 isa nullable PPropdef
+                                       assert ppropdefnode9 isa nullable APropdef
                                        var listnode10 = nodearraylist9
                                        assert listnode10 isa Array[Object]
                                        if ppropdefnode9 != null then
@@ -3861,11 +3950,11 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist6
@@ -3878,7 +3967,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        if ppropdefnode10 != null then
                                                listnode11.add(ppropdefnode10)
                                        end
@@ -3917,11 +4006,11 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist6
@@ -3934,7 +4023,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        var listnode11 = nodearraylist9
                                        assert listnode11 isa Array[Object]
                                        if ppropdefnode10 != null then
@@ -3982,13 +4071,13 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist7
@@ -4001,7 +4090,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        if ppropdefnode10 != null then
                                                listnode11.add(ppropdefnode10)
                                        end
@@ -4041,13 +4130,13 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist7
@@ -4060,7 +4149,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        var listnode11 = nodearraylist10
                                        assert listnode11 isa Array[Object]
                                        if ppropdefnode10 != null then
@@ -4107,11 +4196,11 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode8 = nodearraylist6
@@ -4124,7 +4213,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        if ppropdefnode10 != null then
                                                listnode11.add(ppropdefnode10)
                                        end
@@ -4163,11 +4252,11 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode8 = nodearraylist6
@@ -4180,7 +4269,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist7
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        var listnode11 = nodearraylist9
                                        assert listnode11 isa Array[Object]
                                        if ppropdefnode10 != null then
@@ -4228,13 +4317,13 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode11 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode8 = nodearraylist7
@@ -4247,7 +4336,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        if ppropdefnode10 != null then
                                                listnode11.add(ppropdefnode10)
                                        end
@@ -4287,13 +4376,13 @@ special ReduceAction
                                        var listnode9 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode8 = nodearraylist7
@@ -4306,7 +4395,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode10 = nodearraylist8
-                                       assert ppropdefnode10 isa nullable PPropdef
+                                       assert ppropdefnode10 isa nullable APropdef
                                        var listnode11 = nodearraylist10
                                        assert listnode11 isa Array[Object]
                                        if ppropdefnode10 != null then
@@ -4354,11 +4443,11 @@ special ReduceAction
                                        var listnode10 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist6
@@ -4380,7 +4469,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode11 = nodearraylist8
-                                       assert ppropdefnode11 isa nullable PPropdef
+                                       assert ppropdefnode11 isa nullable APropdef
                                        if ppropdefnode11 != null then
                                                listnode12.add(ppropdefnode11)
                                        end
@@ -4420,11 +4509,11 @@ special ReduceAction
                                        var listnode10 = new Array[Object]
                                        var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist6
@@ -4446,7 +4535,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode11 = nodearraylist8
-                                       assert ppropdefnode11 isa nullable PPropdef
+                                       assert ppropdefnode11 isa nullable APropdef
                                        var listnode12 = nodearraylist10
                                        assert listnode12 isa Array[Object]
                                        if ppropdefnode11 != null then
@@ -4495,13 +4584,13 @@ special ReduceAction
                                        var listnode10 = new Array[Object]
                                        var listnode12 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist7
@@ -4523,7 +4612,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode11 = nodearraylist9
-                                       assert ppropdefnode11 isa nullable PPropdef
+                                       assert ppropdefnode11 isa nullable APropdef
                                        if ppropdefnode11 != null then
                                                listnode12.add(ppropdefnode11)
                                        end
@@ -4564,13 +4653,13 @@ special ReduceAction
                                        var listnode10 = new Array[Object]
                                        var listnode13 = new Array[Object]
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable PClasskind
+                                       assert pclasskindnode5 isa nullable AClasskind
                                        var tclassidnode6 = nodearraylist6
                                        assert tclassidnode6 isa nullable TClassid
                                        var listnode7 = nodearraylist7
@@ -4592,7 +4681,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ppropdefnode11 = nodearraylist9
-                                       assert ppropdefnode11 isa nullable PPropdef
+                                       assert ppropdefnode11 isa nullable APropdef
                                        var listnode12 = nodearraylist11
                                        assert listnode12 isa Array[Object]
                                        if ppropdefnode11 != null then
@@ -4700,7 +4789,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pformaldefnode1 = nodearraylist3
-                                       assert pformaldefnode1 isa nullable PFormaldef
+                                       assert pformaldefnode1 isa nullable AFormaldef
                                        if pformaldefnode1 != null then
                                                listnode2.add(pformaldefnode1)
                                        end
@@ -4722,7 +4811,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var pformaldefnode1 = nodearraylist3
-                                       assert pformaldefnode1 isa nullable PFormaldef
+                                       assert pformaldefnode1 isa nullable AFormaldef
                                        var listnode2 = nodearraylist4
                                        assert listnode2 isa Array[Object]
                                        if pformaldefnode1 != null then
@@ -4749,7 +4838,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pformaldefnode1 = nodearraylist3
-                                       assert pformaldefnode1 isa nullable PFormaldef
+                                       assert pformaldefnode1 isa nullable AFormaldef
                                        node_list = pformaldefnode1
                                        p.push(p.go_to(8), node_list)
        end
@@ -4782,7 +4871,7 @@ special ReduceAction
                                        var tclassidnode2 = nodearraylist1
                                        assert tclassidnode2 isa nullable TClassid
                                        var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
                                                tclassidnode2,
                                                ptypenode3
@@ -4804,7 +4893,7 @@ special ReduceAction
                                        var tkwspecialnode2 = nodearraylist2
                                        assert tkwspecialnode2 isa nullable TKwspecial
                                        var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
                                                tkwspecialnode2,
                                                ptypenode3
@@ -4822,7 +4911,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa nullable PPropdef
+                                       assert ppropdefnode1 isa nullable APropdef
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(11), node_list)
        end
@@ -4841,17 +4930,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                null,
@@ -4880,19 +4969,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -4921,17 +5010,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                null,
@@ -4961,19 +5050,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5001,15 +5090,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                null,
@@ -5037,17 +5126,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5074,15 +5163,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
                                                pdocnode2,
                                                null,
@@ -5110,17 +5199,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5147,15 +5236,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                null,
@@ -5184,17 +5273,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -5223,15 +5312,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist3
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var tstringnode8 = nodearraylist8
                                        assert tstringnode8 isa nullable TString
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
@@ -5263,17 +5352,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwmethnode5 = nodearraylist4
                                        assert tkwmethnode5 isa nullable TKwmeth
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var tstringnode8 = nodearraylist9
                                        assert tstringnode8 isa nullable TString
                                        var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
@@ -5302,7 +5391,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -5316,7 +5405,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist6
@@ -5351,7 +5440,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -5367,7 +5456,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
@@ -5400,7 +5489,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -5408,7 +5497,7 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
@@ -5443,7 +5532,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -5459,7 +5548,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
@@ -5495,7 +5584,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -5513,7 +5602,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
@@ -5547,7 +5636,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -5557,7 +5646,7 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
@@ -5590,7 +5679,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -5598,7 +5687,7 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
@@ -5632,7 +5721,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -5642,7 +5731,7 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
@@ -5674,9 +5763,9 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist4
@@ -5711,7 +5800,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -5727,7 +5816,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
@@ -5763,7 +5852,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -5781,7 +5870,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
@@ -5815,7 +5904,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -5825,7 +5914,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
@@ -5861,7 +5950,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -5879,7 +5968,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
@@ -5916,7 +6005,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -5936,7 +6025,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist8
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist9
@@ -5971,7 +6060,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -5983,7 +6072,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
@@ -6017,7 +6106,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -6027,7 +6116,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
@@ -6062,7 +6151,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -6074,7 +6163,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
@@ -6107,11 +6196,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist4
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist5
@@ -6146,7 +6235,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -6160,13 +6249,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist6
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist7
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6198,7 +6287,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -6214,13 +6303,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6250,7 +6339,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -6258,13 +6347,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6296,7 +6385,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -6312,13 +6401,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6351,7 +6440,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -6369,13 +6458,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6406,7 +6495,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -6416,13 +6505,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6452,7 +6541,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -6460,13 +6549,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -6497,7 +6586,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -6507,13 +6596,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -6542,15 +6631,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist4
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -6582,7 +6671,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -6598,13 +6687,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6637,7 +6726,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -6655,13 +6744,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6692,7 +6781,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -6702,13 +6791,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6741,7 +6830,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -6759,13 +6848,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6799,7 +6888,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -6819,13 +6908,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist8
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist9
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist10
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6857,7 +6946,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -6869,13 +6958,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -6906,7 +6995,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -6916,13 +7005,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -6954,7 +7043,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -6966,13 +7055,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7002,17 +7091,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist4
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist5
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7045,7 +7134,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -7059,13 +7148,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist6
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist9
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7099,7 +7188,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -7115,13 +7204,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7153,7 +7242,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -7161,13 +7250,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist8
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7201,7 +7290,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -7217,13 +7306,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7258,7 +7347,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -7276,13 +7365,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7315,7 +7404,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -7325,13 +7414,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7363,7 +7452,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -7371,13 +7460,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist8
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7410,7 +7499,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -7420,13 +7509,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7457,15 +7546,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist4
                                        assert tattridnode9 isa nullable TAttrid
                                        var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7499,7 +7588,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -7515,13 +7604,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7556,7 +7645,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -7574,13 +7663,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7613,7 +7702,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -7623,13 +7712,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7664,7 +7753,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -7682,13 +7771,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7724,7 +7813,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -7744,13 +7833,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist8
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist9
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7784,7 +7873,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -7796,13 +7885,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -7835,7 +7924,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -7845,13 +7934,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7885,7 +7974,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -7897,13 +7986,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7935,17 +8024,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist4
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist5
                                        assert tattridnode9 isa nullable TAttrid
                                        var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -7979,7 +8068,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -7993,15 +8082,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist5
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist6
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist7
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8036,7 +8125,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -8052,15 +8141,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8093,7 +8182,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -8101,15 +8190,15 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8144,7 +8233,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -8160,15 +8249,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8204,7 +8293,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -8222,15 +8311,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8264,7 +8353,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -8274,15 +8363,15 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8315,7 +8404,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -8323,15 +8412,15 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist4
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -8365,7 +8454,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -8375,15 +8464,15 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -8415,17 +8504,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist3
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist4
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -8460,7 +8549,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -8476,15 +8565,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist6
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8520,7 +8609,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -8538,15 +8627,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8580,7 +8669,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -8590,15 +8679,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8634,7 +8723,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -8652,15 +8741,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist7
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8697,7 +8786,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -8717,15 +8806,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwattrnode11 = nodearraylist8
                                        assert tkwattrnode11 isa nullable TKwattr
                                        var tattridnode13 = nodearraylist9
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist10
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist13
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8760,7 +8849,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -8772,15 +8861,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -8814,7 +8903,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -8824,15 +8913,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist5
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -8867,7 +8956,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -8879,15 +8968,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwattrnode9 = nodearraylist6
                                        assert tkwattrnode9 isa nullable TKwattr
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -8920,19 +9009,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwattrnode7 = nodearraylist4
                                        assert tkwattrnode7 isa nullable TKwattr
                                        var tattridnode9 = nodearraylist5
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -8962,7 +9051,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -8976,7 +9065,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist5
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist6
@@ -9011,7 +9100,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9027,7 +9116,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
@@ -9060,7 +9149,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9068,7 +9157,7 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
@@ -9103,7 +9192,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -9119,7 +9208,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
@@ -9155,7 +9244,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -9173,7 +9262,7 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
@@ -9207,7 +9296,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -9217,7 +9306,7 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
@@ -9250,7 +9339,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -9258,7 +9347,7 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
@@ -9292,7 +9381,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -9302,7 +9391,7 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
@@ -9334,9 +9423,9 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist3
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist4
@@ -9371,7 +9460,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9387,7 +9476,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
@@ -9423,7 +9512,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9441,7 +9530,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
@@ -9475,7 +9564,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9485,7 +9574,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
@@ -9521,7 +9610,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -9539,7 +9628,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
@@ -9576,7 +9665,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -9596,7 +9685,7 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist8
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist9
@@ -9631,7 +9720,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -9643,7 +9732,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
@@ -9677,7 +9766,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -9687,7 +9776,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
@@ -9722,7 +9811,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -9734,7 +9823,7 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
@@ -9767,11 +9856,11 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist4
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist5
@@ -9806,7 +9895,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9820,13 +9909,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist5
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist6
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist7
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9858,7 +9947,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9874,13 +9963,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9910,7 +9999,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -9918,13 +10007,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -9956,7 +10045,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -9972,13 +10061,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10011,7 +10100,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10029,13 +10118,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10066,7 +10155,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10076,13 +10165,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10112,7 +10201,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -10120,13 +10209,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10157,7 +10246,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -10167,13 +10256,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10202,15 +10291,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist3
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist4
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10242,7 +10331,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -10258,13 +10347,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10297,7 +10386,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -10315,13 +10404,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10352,7 +10441,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -10362,13 +10451,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10401,7 +10490,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10419,13 +10508,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10459,7 +10548,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10479,13 +10568,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist8
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist9
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist10
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10517,7 +10606,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10529,13 +10618,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10566,7 +10655,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -10576,13 +10665,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10614,7 +10703,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -10626,13 +10715,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10662,17 +10751,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist4
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist5
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -10705,7 +10794,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -10719,13 +10808,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist5
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist6
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist9
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10759,7 +10848,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -10775,13 +10864,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10813,7 +10902,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -10821,13 +10910,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist8
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10861,7 +10950,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10877,13 +10966,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10918,7 +11007,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10936,13 +11025,13 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -10975,7 +11064,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -10985,13 +11074,13 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11023,7 +11112,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -11031,13 +11120,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist8
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11070,7 +11159,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -11080,13 +11169,13 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11117,15 +11206,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist3
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist4
                                        assert tattridnode9 isa nullable TAttrid
                                        var pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11159,7 +11248,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -11175,13 +11264,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11216,7 +11305,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -11234,13 +11323,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11273,7 +11362,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -11283,13 +11372,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11324,7 +11413,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -11342,13 +11431,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11384,7 +11473,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -11404,13 +11493,13 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist8
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist9
                                        assert tattridnode13 isa nullable TAttrid
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11444,7 +11533,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -11456,13 +11545,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11495,7 +11584,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -11505,13 +11594,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11545,7 +11634,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -11557,13 +11646,13 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11595,17 +11684,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist4
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist5
                                        assert tattridnode9 isa nullable TAttrid
                                        var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -11639,7 +11728,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -11653,15 +11742,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist4
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist5
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist6
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist7
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist10
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11696,7 +11785,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -11712,15 +11801,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11753,7 +11842,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -11761,15 +11850,15 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11804,7 +11893,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -11820,15 +11909,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11864,7 +11953,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -11882,15 +11971,15 @@ special ReduceAction
                                                tkwwritablenode8
                                        )
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11924,7 +12013,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -11934,15 +12023,15 @@ special ReduceAction
                                                tkwreadablenode5
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -11975,7 +12064,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -11983,15 +12072,15 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist3
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist4
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist5
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist6
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist9
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -12025,7 +12114,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -12035,15 +12124,15 @@ special ReduceAction
                                                tkwwritablenode6
                                        )
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -12075,17 +12164,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist3
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist4
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -12120,7 +12209,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -12136,15 +12225,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist4
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist5
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist6
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist7
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist8
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist11
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -12180,7 +12269,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -12198,15 +12287,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -12240,7 +12329,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwreadablenode5 = nodearraylist2
                                        assert tkwreadablenode5 isa nullable TKwreadable
                                        var pablenode3: nullable AReadAble = new AReadAble.init_areadable(
@@ -12250,15 +12339,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -12294,7 +12383,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -12312,15 +12401,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist5
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist6
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist7
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist8
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist9
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist12
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -12357,7 +12446,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -12377,15 +12466,15 @@ special ReduceAction
                                        var tkwredefnode9 = nodearraylist6
                                        assert tkwredefnode9 isa nullable TKwredef
                                        var pvisibilitynode10 = nodearraylist7
-                                       assert pvisibilitynode10 isa nullable PVisibility
+                                       assert pvisibilitynode10 isa nullable AVisibility
                                        var tkwvarnode12 = nodearraylist8
                                        assert tkwvarnode12 isa nullable TKwvar
                                        var tattridnode13 = nodearraylist9
                                        assert tattridnode13 isa nullable TAttrid
                                        var ptypenode14 = nodearraylist10
-                                       assert ptypenode14 isa nullable PType
+                                       assert ptypenode14 isa nullable AType
                                        var pexprnode15 = nodearraylist13
-                                       assert pexprnode15 isa nullable PExpr
+                                       assert pexprnode15 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -12420,7 +12509,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode4 = nodearraylist2
                                        assert tkwredefnode4 isa nullable TKwredef
                                        var tkwreadablenode5 = nodearraylist3
@@ -12432,15 +12521,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                pablenode3,
@@ -12474,7 +12563,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwwritablenode6 = nodearraylist2
                                        assert tkwwritablenode6 isa nullable TKwwritable
                                        var pablenode4: nullable AWriteAble = new AWriteAble.init_awriteable(
@@ -12484,15 +12573,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist3
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist4
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist5
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist6
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist7
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist10
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -12527,7 +12616,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var tkwwritablenode6 = nodearraylist3
@@ -12539,15 +12628,15 @@ special ReduceAction
                                        var tkwredefnode7 = nodearraylist4
                                        assert tkwredefnode7 isa nullable TKwredef
                                        var pvisibilitynode8 = nodearraylist5
-                                       assert pvisibilitynode8 isa nullable PVisibility
+                                       assert pvisibilitynode8 isa nullable AVisibility
                                        var tkwvarnode10 = nodearraylist6
                                        assert tkwvarnode10 isa nullable TKwvar
                                        var tattridnode11 = nodearraylist7
                                        assert tattridnode11 isa nullable TAttrid
                                        var ptypenode12 = nodearraylist8
-                                       assert ptypenode12 isa nullable PType
+                                       assert ptypenode12 isa nullable AType
                                        var pexprnode13 = nodearraylist11
-                                       assert pexprnode13 isa nullable PExpr
+                                       assert pexprnode13 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -12580,19 +12669,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode5 = nodearraylist2
                                        assert tkwredefnode5 isa nullable TKwredef
                                        var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable PVisibility
+                                       assert pvisibilitynode6 isa nullable AVisibility
                                        var tkwvarnode8 = nodearraylist4
                                        assert tkwvarnode8 isa nullable TKwvar
                                        var tattridnode9 = nodearraylist5
                                        assert tattridnode9 isa nullable TAttrid
                                        var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable PType
+                                       assert ptypenode10 isa nullable AType
                                        var pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable PExpr
+                                       assert pexprnode11 isa nullable AExpr
                                        var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                null,
@@ -12622,15 +12711,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist3
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
@@ -12658,17 +12747,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist4
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -12696,17 +12785,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist3
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
@@ -12735,19 +12824,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist4
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -12775,15 +12864,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist3
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
@@ -12812,17 +12901,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist4
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -12851,17 +12940,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist3
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                null,
@@ -12891,19 +12980,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwinitnode5 = nodearraylist4
                                        assert tkwinitnode5 isa nullable TKwinit
                                        var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
+                                       assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
+                                       assert psignaturenode7 isa nullable ASignature
                                        var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable PExpr
+                                       assert pexprnode8 isa nullable AExpr
                                        var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -12929,15 +13018,15 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwtypenode5 = nodearraylist3
                                        assert tkwtypenode5 isa nullable TKwtype
                                        var tclassidnode6 = nodearraylist4
                                        assert tclassidnode6 isa nullable TClassid
                                        var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable PType
+                                       assert ptypenode7 isa nullable AType
                                        var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                null,
@@ -12963,17 +13052,17 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
+                                       assert pdocnode2 isa nullable ADoc
                                        var tkwredefnode3 = nodearraylist2
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
+                                       assert pvisibilitynode4 isa nullable AVisibility
                                        var tkwtypenode5 = nodearraylist4
                                        assert tkwtypenode5 isa nullable TKwtype
                                        var tclassidnode6 = nodearraylist5
                                        assert tclassidnode6 isa nullable TClassid
                                        var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable PType
+                                       assert ptypenode7 isa nullable AType
                                        var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -13396,7 +13485,7 @@ special ReduceAction
                                        var listnode2 = new Array[Object]
                                        var listnode5 = new Array[Object]
                                        var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
 #                                      if listnode4 != null then
@@ -13436,7 +13525,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable PType
+                                       assert ptypenode4 isa nullable AType
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
 #                                      if listnode5 != null then
@@ -13512,7 +13601,7 @@ special ReduceAction
                                        var listnode2 = new Array[Object]
                                        var listnode4 = new Array[Object]
                                        var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
                                                listnode2,
                                                ptypenode3,
@@ -13543,7 +13632,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable PType
+                                       assert ptypenode4 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
                                                listnode3,
                                                ptypenode4,
@@ -13607,7 +13696,7 @@ special ReduceAction
                                        var listnode2 = new Array[Object]
                                        var listnode4 = new Array[Object]
                                        var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
                                                listnode2,
                                                ptypenode3,
@@ -13637,7 +13726,7 @@ special ReduceAction
                                                end
 #                                      end
                                        var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable PType
+                                       assert ptypenode4 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
                                                listnode3,
                                                ptypenode4,
@@ -13660,7 +13749,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable PParam
+                                       assert pparamnode1 isa nullable AParam
                                        if pparamnode1 != null then
                                                listnode2.add(pparamnode1)
                                        end
@@ -13682,7 +13771,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable PParam
+                                       assert pparamnode1 isa nullable AParam
                                        var listnode2 = nodearraylist4
                                        assert listnode2 isa Array[Object]
                                        if pparamnode1 != null then
@@ -13723,7 +13812,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable PParam
+                                       assert pparamnode1 isa nullable AParam
                                        node_list = pparamnode1
                                        p.push(p.go_to(18), node_list)
        end
@@ -13757,7 +13846,7 @@ special ReduceAction
                                        var tidnode2 = nodearraylist1
                                        assert tidnode2 isa nullable TId
                                        var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var pparamnode1: nullable AParam = new AParam.init_aparam(
                                                tidnode2,
                                                ptypenode3,
@@ -13779,7 +13868,7 @@ special ReduceAction
                                        var tidnode2 = nodearraylist1
                                        assert tidnode2 isa nullable TId
                                        var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var tdotdotdotnode4 = nodearraylist3
                                        assert tdotdotdotnode4 isa nullable TDotdotdot
                                        var pparamnode1: nullable AParam = new AParam.init_aparam(
@@ -13829,7 +13918,7 @@ special ReduceAction
                                        var tidnode4 = nodearraylist3
                                        assert tidnode4 isa nullable TId
                                        var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable PSignature
+                                       assert psignaturenode5 isa nullable ASignature
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                tkwwithnode2,
                                                null,
@@ -13860,7 +13949,7 @@ special ReduceAction
                                        var tidnode4 = nodearraylist4
                                        assert tidnode4 isa nullable TId
                                        var psignaturenode5 = nodearraylist5
-                                       assert psignaturenode5 isa nullable PSignature
+                                       assert psignaturenode5 isa nullable ASignature
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                tkwwithnode2,
                                                tkwbreaknode3,
@@ -13890,9 +13979,9 @@ special ReduceAction
                                        var tidnode4 = nodearraylist3
                                        assert tidnode4 isa nullable TId
                                        var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable PSignature
+                                       assert psignaturenode5 isa nullable ASignature
                                        var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable PExpr
+                                       assert pexprnode6 isa nullable AExpr
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                tkwwithnode2,
                                                null,
@@ -13925,9 +14014,9 @@ special ReduceAction
                                        var tidnode4 = nodearraylist4
                                        assert tidnode4 isa nullable TId
                                        var psignaturenode5 = nodearraylist5
-                                       assert psignaturenode5 isa nullable PSignature
+                                       assert psignaturenode5 isa nullable ASignature
                                        var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable PExpr
+                                       assert pexprnode6 isa nullable AExpr
                                        var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
                                                tkwwithnode2,
                                                tkwbreaknode3,
@@ -14058,7 +14147,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var ptypenode1 = nodearraylist1
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        if ptypenode1 != null then
                                                listnode2.add(ptypenode1)
                                        end
@@ -14076,7 +14165,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var ptypenode1 = nodearraylist1
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
                                        if ptypenode1 != null then
@@ -14103,7 +14192,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var ptypenode1 = nodearraylist3
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        node_list = ptypenode1
                                        p.push(p.go_to(24), node_list)
        end
@@ -14118,7 +14207,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var ptypenode1 = nodearraylist3
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        node_list = ptypenode1
                                        p.push(p.go_to(25), node_list)
        end
@@ -14129,26 +14218,13 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(26), node_list)
-       end
-init do end
-end
-private class ReduceAction309
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        if pexprnode2 != null then
                                                listnode3.add(pexprnode2)
                                        end
@@ -14160,7 +14236,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction310
+private class ReduceAction309
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14172,7 +14248,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
                                        var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode3 = nodearraylist3
                                        assert listnode3 isa Array[Object]
                                        if pexprnode2 != null then
@@ -14193,7 +14269,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction311
+private class ReduceAction310
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14209,7 +14285,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction312
+private class ReduceAction311
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14224,6 +14300,19 @@ special ReduceAction
        end
 init do end
 end
+private class ReduceAction312
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(26), node_list)
+       end
+init do end
+end
 private class ReduceAction313
 special ReduceAction
        redef fun action(p: Parser)
@@ -14232,7 +14321,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(27), node_list)
        end
@@ -14245,7 +14334,7 @@ special ReduceAction
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
@@ -14258,7 +14347,7 @@ special ReduceAction
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
@@ -14291,7 +14380,7 @@ special ReduceAction
                                        var tkwreturnnode2 = nodearraylist1
                                        assert tkwreturnnode2 isa nullable TKwreturn
                                        var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
                                                tkwreturnnode2,
                                                pexprnode3
@@ -14311,6 +14400,7 @@ special ReduceAction
                                        assert tkwbreaknode2 isa nullable TKwbreak
                                        var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
                                                tkwbreaknode2,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
@@ -14327,11 +14417,12 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var tkwbreaknode2 = nodearraylist1
                                        assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
                                        var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
                                                tkwbreaknode2,
-                                               pexprnode3
+                                               plabelnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
@@ -14343,6 +14434,51 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction321
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction322
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var tkwabortnode2 = nodearraylist1
                                        assert tkwabortnode2 isa nullable TKwabort
@@ -14354,7 +14490,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction321
+private class ReduceAction323
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14364,6 +14500,7 @@ special ReduceAction
                                        assert tkwcontinuenode2 isa nullable TKwcontinue
                                        var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
                                                tkwcontinuenode2,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
@@ -14371,7 +14508,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction322
+private class ReduceAction324
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14380,83 +14517,129 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var tkwcontinuenode2 = nodearraylist1
                                        assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
                                        var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
                                                tkwcontinuenode2,
-                                               pexprnode3
+                                               plabelnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction323
+private class ReduceAction325
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction326
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(28), node_list)
+       end
+init do end
+end
+private class ReduceAction327
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction324
+private class ReduceAction328
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction325
+private class ReduceAction329
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction326
+private class ReduceAction330
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction327
+private class ReduceAction331
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(28), node_list)
        end
 init do end
 end
-private class ReduceAction328
+private class ReduceAction332
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14469,7 +14652,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -14492,7 +14675,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction329
+private class ReduceAction333
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14525,7 +14708,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction330
+private class ReduceAction334
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14539,7 +14722,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -14571,7 +14754,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction331
+private class ReduceAction335
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14614,7 +14797,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction332
+private class ReduceAction336
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14643,7 +14826,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction333
+private class ReduceAction337
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14653,7 +14836,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
                                        var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable PQualified
+                                       assert pqualifiednode2 isa nullable AQualified
                                        var tkwsupernode3 = nodearraylist2
                                        assert tkwsupernode3 isa nullable TKwsuper
                                        var listnode4 = nodearraylist3
@@ -14675,7 +14858,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction334
+private class ReduceAction338
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14687,7 +14870,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tkwinitnode3 = nodearraylist4
                                        assert tkwinitnode3 isa nullable TKwinit
                                        var listnode4 = nodearraylist5
@@ -14709,7 +14892,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction335
+private class ReduceAction339
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14740,7 +14923,27 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction336
+private class ReduceAction340
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               tidnode3
+                                       )
+                                       node_list = plabelnode1
+                                       p.push(p.go_to(29), node_list)
+       end
+init do end
+end
+private class ReduceAction341
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14748,16 +14951,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable PClosureDef
+                                       assert pclosuredefnode1 isa nullable AClosureDef
                                        if pclosuredefnode1 != null then
                                                listnode2.add(pclosuredefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(29), node_list)
+                                       p.push(p.go_to(30), node_list)
        end
 init do end
 end
-private class ReduceAction337
+private class ReduceAction342
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -14766,7 +14969,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable PClosureDef
+                                       assert pclosuredefnode1 isa nullable AClosureDef
                                        var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
                                        if pclosuredefnode1 != null then
@@ -14780,77 +14983,16 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode3
-                                       p.push(p.go_to(29), node_list)
-       end
-init do end
-end
-private class ReduceAction338
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(30), node_list)
-       end
-init do end
-end
-private class ReduceAction339
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pclosuredefnode1
                                        p.push(p.go_to(30), node_list)
        end
 init do end
 end
-private class ReduceAction340
+private class ReduceAction343
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -14863,7 +15005,7 @@ special ReduceAction
                                        assert tkwdonode4 isa nullable TKwdo
                                        var listnode7 = new Array[Object]
                                        var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
+                                       assert pexprnode6 isa nullable AExpr
                                        if pexprnode6 != null then
                                                listnode7.add(pexprnode6)
                                        end
@@ -14874,18 +15016,20 @@ special ReduceAction
                                                tkwwithnode2,
                                                listnode3,
                                                tkwdonode4,
-                                               pexprnode5
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction341
+private class ReduceAction344
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -14899,7 +15043,7 @@ special ReduceAction
                                        assert tkwdonode4 isa nullable TKwdo
                                        var listnode8 = new Array[Object]
                                        var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
+                                       assert pexprnode6 isa nullable AExpr
                                        var listnode7 = nodearraylist5
                                        assert listnode7 isa Array[Object]
                                        if pexprnode6 != null then
@@ -14919,41 +15063,102 @@ special ReduceAction
                                                tkwwithnode2,
                                                listnode3,
                                                tkwdonode4,
-                                               pexprnode5
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction342
+private class ReduceAction345
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode3 = new Array[Object]
                                        var tkwwithnode2 = nodearraylist1
                                        assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
-                                               else
-                                                       listnode4.append(listnode3)
-                                               end
-#                                      end
-                                       var tkwdonode5 = nodearraylist3
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
+       end
+init do end
+end
+private class ReduceAction346
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
+       end
+init do end
+end
+private class ReduceAction347
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode8 = new Array[Object]
                                        var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable PExpr
+                                       assert pexprnode7 isa nullable AExpr
                                        if pexprnode7 != null then
                                                listnode8.add(pexprnode7)
                                        end
@@ -14964,18 +15169,20 @@ special ReduceAction
                                                tkwwithnode2,
                                                listnode4,
                                                tkwdonode5,
-                                               pexprnode6
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction343
+private class ReduceAction348
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -14999,7 +15206,7 @@ special ReduceAction
                                        assert tkwdonode5 isa nullable TKwdo
                                        var listnode9 = new Array[Object]
                                        var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable PExpr
+                                       assert pexprnode7 isa nullable AExpr
                                        var listnode8 = nodearraylist6
                                        assert listnode8 isa Array[Object]
                                        if pexprnode7 != null then
@@ -15019,30 +15226,47 @@ special ReduceAction
                                                tkwwithnode2,
                                                listnode4,
                                                tkwdonode5,
-                                               pexprnode6
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pclosuredefnode1
                                        p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction344
+private class ReduceAction349
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       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 listnode4 = new Array[Object]
                                        var tkwwithnode2 = nodearraylist1
                                        assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
-                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tkwwithnode2,
-                                               listnode3,
-                                               tkwdonode4,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -15050,7 +15274,7 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction345
+private class ReduceAction350
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15073,10 +15297,15 @@ special ReduceAction
 #                                      end
                                        var tkwdonode5 = nodearraylist3
                                        assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
                                        var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
                                                tkwwithnode2,
                                                listnode4,
                                                tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pclosuredefnode1
@@ -15084,56 +15313,97 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction346
+private class ReduceAction351
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
-                                               null
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(32), node_list)
+                                       var plabelnode8 = nodearraylist7
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode8
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction347
+private class ReduceAction352
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable PType
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               null,
-                                               null
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+#                                      end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(32), node_list)
+                                       var plabelnode9 = nodearraylist8
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode9
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction348
+private class ReduceAction353
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15143,121 +15413,118 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(32), node_list)
+                                       var plabelnode7 = nodearraylist5
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction349
+private class ReduceAction354
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable PType
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(32), node_list)
-       end
-init do end
-end
-private class ReduceAction350
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist5
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       var plabelnode7 = nodearraylist4
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction351
+private class ReduceAction355
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var plabelnode9 = nodearraylist8
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode9
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction352
+private class ReduceAction356
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -15265,87 +15532,108 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
                                                else
-                                                       listnode5.append(listnode4)
+                                                       listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var tassignnode6 = nodearraylist6
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+#                                      end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       var plabelnode10 = nodearraylist9
+                                       assert plabelnode10 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode10
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction353
+private class ReduceAction357
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
                                                else
-                                                       listnode5.append(listnode4)
+                                                       listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var tassignnode6 = nodearraylist3
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       var plabelnode8 = nodearraylist6
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction354
+private class ReduceAction358
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -15355,171 +15643,186 @@ special ReduceAction
                                                        listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
-                                               pexprnode2,
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist5
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
                                                listnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction355
+private class ReduceAction359
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
-                                       assert passignopnode4 isa nullable PAssignOp
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction356
+private class ReduceAction360
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
-                                       assert passignopnode4 isa nullable PAssignOp
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(31), node_list)
        end
 init do end
 end
-private class ReduceAction357
+private class ReduceAction361
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var passignopnode6 = nodearraylist6
-                                       assert passignopnode6 isa nullable PAssignOp
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction358
+private class ReduceAction362
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
                                                else
-                                                       listnode5.append(listnode4)
+                                                       listnode8.append(listnode7)
                                                end
 #                                      end
-                                       var passignopnode6 = nodearraylist3
-                                       assert passignopnode6 isa nullable PAssignOp
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction359
+private class ReduceAction363
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -15529,224 +15832,225 @@ special ReduceAction
                                                        listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var passignopnode5 = nodearraylist3
-                                       assert passignopnode5 isa nullable PAssignOp
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
-                                               pexprnode2,
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
                                                listnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction360
+private class ReduceAction364
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tpluseqnode2 = nodearraylist1
-                                       assert tpluseqnode2 isa nullable TPluseq
-                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
-                                               tpluseqnode2
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+#                                      end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
-                                       node_list = passignopnode1
-                                       p.push(p.go_to(34), node_list)
-       end
-init do end
-end
-private class ReduceAction361
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tminuseqnode2 = nodearraylist1
-                                       assert tminuseqnode2 isa nullable TMinuseq
-                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
-                                               tminuseqnode2
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
-                                       node_list = passignopnode1
-                                       p.push(p.go_to(34), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction362
+private class ReduceAction365
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               null,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(35), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction363
+private class ReduceAction366
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable PExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               null,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(32), node_list)
        end
 init do end
 end
-private class ReduceAction364
+private class ReduceAction367
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable PExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction365
+private class ReduceAction368
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable PExpr
-                                       if pexprnode5 != null then
-                                               listnode6.add(pexprnode5)
-                                       end
-                                       var pexprnode4: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode6
-                                       )
-                                       var pexprnode7 = nodearraylist9
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode7
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction366
+private class ReduceAction369
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable PExpr
-                                       var listnode6 = nodearraylist8
-                                       assert listnode6 isa Array[Object]
-                                       if pexprnode5 != null then
-                                               listnode7.add(pexprnode5)
-                                       end
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode4: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode7
-                                       )
-                                       var pexprnode8 = nodearraylist10
-                                       assert pexprnode8 isa nullable PExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode8
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction367
+private class ReduceAction370
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -15757,115 +16061,90 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
-                                               pexprnode5
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
+                                       p.push(p.go_to(33), node_list)
        end
 init do end
 end
-private class ReduceAction368
+private class ReduceAction371
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist5
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(36), node_list)
-       end
-init do end
-end
-private class ReduceAction369
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(37), node_list)
-       end
-init do end
-end
-private class ReduceAction370
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(37), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction371
+private class ReduceAction372
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist2
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(38), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction372
+private class ReduceAction373
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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
@@ -15873,105 +16152,174 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var tidnode3 = nodearraylist3
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable PExpr
-                                       var tkwdonode5 = nodearraylist9
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist10
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tassignnode6 = nodearraylist6
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
                                                tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
-                                               pexprnode6
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(39), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction373
+private class ReduceAction374
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable PExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       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 tassignnode6 = nodearraylist3
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction374
+private class ReduceAction375
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable PExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(40), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction375
+private class ReduceAction376
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
-                                       node_list = tidnode1
-                                       p.push(p.go_to(41), node_list)
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist5
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction376
+private class ReduceAction377
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist2
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction377
+private class ReduceAction378
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -15979,9 +16327,8 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -15993,36 +16340,32 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var passignopnode6 = nodearraylist6
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               listnode7
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction378
+private class ReduceAction379
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        var tidnode3 = nodearraylist1
@@ -16036,38 +16379,34 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var passignopnode6 = nodearraylist3
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               listnode7
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction379
+private class ReduceAction380
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -16077,146 +16416,146 @@ special ReduceAction
                                                        listnode4.append(listnode3)
                                                end
 #                                      end
-                                       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 pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
                                                pexprnode2,
                                                listnode4,
-                                               listnode6
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(42), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction380
+private class ReduceAction381
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
+                                       var tpluseqnode2 = nodearraylist1
+                                       assert tpluseqnode2 isa nullable TPluseq
+                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
+                                               tpluseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(35), node_list)
        end
 init do end
 end
-private class ReduceAction381
+private class ReduceAction382
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tminuseqnode2 = nodearraylist1
+                                       assert tminuseqnode2 isa nullable TMinuseq
+                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
+                                               tminuseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(35), node_list)
+       end
+init do end
+end
+private class ReduceAction383
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable PExpr
-                                       var tkwelsenode6 = nodearraylist9
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
-                                               tkwifnode2,
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
                                                pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(43), node_list)
-       end
-init do end
-end
-private class ReduceAction382
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction383
+private class ReduceAction384
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       if pexprnode4 != null then
+                                               listnode6.add(pexprnode4)
+                                       end
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+#                                      end
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
-private class ReduceAction384
+private class ReduceAction385
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(44), node_list)
-       end
-init do end
-end
-private class ReduceAction385
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
@@ -16225,19 +16564,21 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwnotnode2 = nodearraylist1
-                                       assert tkwnotnode2 isa nullable TKwnot
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
-                                               tkwnotnode2,
-                                               pexprnode3
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(45), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
@@ -16246,11 +16587,32 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode5
+                                       )
+                                       var plabelnode6 = nodearraylist6
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode6
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
@@ -16259,20 +16621,42 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       if pexprnode4 != null then
+                                               listnode6.add(pexprnode4)
+                                       end
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+#                                      end
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var plabelnode7 = nodearraylist7
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
@@ -16285,16 +16669,21 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       var plabelnode5 = nodearraylist4
+                                       assert plabelnode5 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
@@ -16303,20 +16692,24 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       var plabelnode5 = nodearraylist3
+                                       assert plabelnode5 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
@@ -16325,20 +16718,19 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(36), node_list)
        end
 init do end
 end
@@ -16347,20 +16739,30 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
@@ -16369,42 +16771,66 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
-       end
-init do end
-end
-private class ReduceAction394
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(37), node_list)
+       end
+init do end
+end
+private class ReduceAction394
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       if pexprnode5 != null then
+                                               listnode6.add(pexprnode5)
+                                       end
+                                       var pexprnode4: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode7 = nodearraylist9
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
@@ -16413,20 +16839,48 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var listnode6 = nodearraylist8
+                                       assert listnode6 isa Array[Object]
+                                       if pexprnode5 != null then
+                                               listnode7.add(pexprnode5)
+                                       end
+#                                      if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+#                                      end
+                                       var pexprnode4: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pexprnode8 = nodearraylist10
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
@@ -16435,20 +16889,26 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable PType
-                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
-                                               pexprnode2,
-                                               ptypenode3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(46), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
@@ -16457,11 +16917,27 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(37), node_list)
        end
 init do end
 end
@@ -16470,20 +16946,12 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
@@ -16492,20 +16960,9 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(47), node_list)
+                                       node_list = null
+                                       p.push(p.go_to(38), node_list)
        end
 init do end
 end
@@ -16514,11 +16971,39 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16527,20 +17012,49 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+#                                      end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16549,20 +17063,32 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16571,20 +17097,31 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(48), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16593,11 +17130,42 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist10
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode8
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16606,19 +17174,52 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+#                                      end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist11
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16627,19 +17228,35 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var plabelnode7 = nodearraylist8
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(49), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16648,11 +17265,34 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var plabelnode7 = nodearraylist7
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16661,32 +17301,29 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               listnode6
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(39), node_list)
        end
 init do end
 end
@@ -16695,24 +17332,46 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-                                       var tattridnode4 = nodearraylist5
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16721,21 +17380,56 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       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
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist12
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+#                                      end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
-                                       var tattridnode4 = nodearraylist2
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(50), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16744,20 +17438,39 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16766,17 +17479,38 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16785,34 +17519,49 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       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
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tidnode3 = nodearraylist4
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist14
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
                                                tidnode3,
-                                               listnode5,
-                                               listnode6
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16821,31 +17570,59 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist15 = p.pop
+                                       var nodearraylist14 = p.pop
+                                       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
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist12
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
                                                else
-                                                       listnode5.append(listnode4)
+                                                       listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
+                                       )
+                                       var plabelnode10 = nodearraylist15
+                                       assert plabelnode10 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
                                                tidnode3,
-                                               listnode5,
-                                               listnode6
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode10
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16854,27 +17631,42 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       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 pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist12
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16883,30 +17675,41 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable PQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist11
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(40), node_list)
        end
 init do end
 end
@@ -16915,16 +17718,128 @@ special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist10
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(40), node_list)
+       end
+init do end
+end
+private class ReduceAction418
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
+       end
+init do end
+end
+private class ReduceAction419
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(41), node_list)
+       end
+init do end
+end
+private class ReduceAction420
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa nullable TId
+                                       node_list = tidnode1
+                                       p.push(p.go_to(42), node_list)
+       end
+init do end
+end
+private class ReduceAction421
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(43), node_list)
+       end
+init do end
+end
+private class ReduceAction422
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
                                        assert listnode4 isa Array[Object]
 #                                      if listnode4 != null then
@@ -16934,28 +17849,40 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+#                                      if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction418
+private class ReduceAction423
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
 #                                      if listnode4 != null then
@@ -16965,27 +17892,38 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+#                                      if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction419
+private class ReduceAction424
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -16995,60 +17933,45 @@ special ReduceAction
                                                        listnode4.append(listnode3)
                                                end
 #                                      end
+                                       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 pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
                                                pexprnode2,
                                                listnode4,
-                                               listnode5
+                                               listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(43), node_list)
        end
 init do end
 end
-private class ReduceAction420
+private class ReduceAction425
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
-                                       var tidnode4 = nodearraylist6
-                                       assert tidnode4 isa nullable TId
-                                       var listnode5 = nodearraylist7
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction421
+private class ReduceAction426
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -17058,405 +17981,426 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist7
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(44), node_list)
        end
 init do end
 end
-private class ReduceAction422
+private class ReduceAction427
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(45), node_list)
+       end
+init do end
+end
+private class ReduceAction428
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist7
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction423
+private class ReduceAction429
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               listnode3
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(45), node_list)
        end
 init do end
 end
-private class ReduceAction424
+private class ReduceAction430
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction425
+private class ReduceAction431
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwtruenode2 = nodearraylist1
-                                       assert tkwtruenode2 isa nullable TKwtrue
-                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
-                                               tkwtruenode2
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(46), node_list)
        end
 init do end
 end
-private class ReduceAction426
+private class ReduceAction432
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction427
+private class ReduceAction433
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction428
+private class ReduceAction434
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction429
+private class ReduceAction435
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction430
+private class ReduceAction436
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction431
+private class ReduceAction437
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction432
+private class ReduceAction438
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction433
+private class ReduceAction439
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable PExpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction434
+private class ReduceAction440
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist8
-                                       assert ptypenode4 isa nullable PType
-                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
                                                pexprnode2,
-                                               tkwasnode3,
-                                               ptypenode4
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction435
+private class ReduceAction441
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist8
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullnode5 = nodearraylist10
-                                       assert tkwnullnode5 isa nullable TKwnull
-                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                       assert pexprnode2 isa nullable AExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
                                                pexprnode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullnode5
+                                               ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction436
+private class ReduceAction442
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(48), node_list)
+       end
+init do end
+end
+private class ReduceAction443
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-#                                      if listnode2 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode2
-                                               else
-                                                       listnode4.append(listnode2)
-                                               end
-#                                      end
-                                       if pexprnode3 != null then
-                                               listnode4.add(pexprnode3)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction437
+private class ReduceAction444
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable PExpr
-#                                      if listnode2 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode2
-                                               else
-                                                       listnode5.append(listnode2)
-                                               end
-#                                      end
-#                                      if listnode3 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode3
-                                               else
-                                                       listnode5.append(listnode3)
-                                               end
-#                                      end
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction438
+private class ReduceAction445
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       var pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable PExpr
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(53), node_list)
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction439
+private class ReduceAction446
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstartstringnode2 = nodearraylist1
-                                       assert tstartstringnode2 isa nullable TStartString
-                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
-                                               tstartstringnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction440
+private class ReduceAction447
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17465,132 +18409,144 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       var pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable PExpr
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(55), node_list)
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction441
+private class ReduceAction448
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tmidstringnode2 = nodearraylist1
-                                       assert tmidstringnode2 isa nullable TMidString
-                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
-                                               tmidstringnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(56), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction442
+private class ReduceAction449
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tendstringnode2 = nodearraylist1
-                                       assert tendstringnode2 isa nullable TEndString
-                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
-                                               tendstringnode2
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(57), node_list)
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction443
+private class ReduceAction450
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable PExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(58), node_list)
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction444
+private class ReduceAction451
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable PExpr
-                                       var listnode2 = nodearraylist5
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(58), node_list)
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction445
+private class ReduceAction452
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(58), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction446
+private class ReduceAction453
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(58), node_list)
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction447
+private class ReduceAction454
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17600,91 +18556,87 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable PExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(59), node_list)
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist5
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction448
+private class ReduceAction455
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable PExpr
-                                       var listnode2 = nodearraylist5
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(59), node_list)
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode4 = nodearraylist2
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(51), node_list)
        end
 init do end
 end
-private class ReduceAction449
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(59), node_list)
-       end
-init do end
-end
-private class ReduceAction450
+private class ReduceAction456
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(59), node_list)
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction451
+private class ReduceAction457
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(59), node_list)
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction452
+private class ReduceAction458
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17694,82 +18646,127 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable PExpr
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(60), node_list)
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction453
+private class ReduceAction459
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode3 = new Array[Object]
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable PExpr
-                                       var listnode2 = nodearraylist5
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode3.append(listnode2)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(60), node_list)
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction454
+private class ReduceAction460
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist3
-                                       assert pexprnode1 isa nullable PExpr
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       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 pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(61), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction455
+private class ReduceAction461
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
-                                       if tidnode1 != null then
-                                               listnode2.add(tidnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(62), node_list)
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction456
+private class ReduceAction462
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17779,148 +18776,185 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var tidnode2 = nodearraylist5
-                                       assert tidnode2 isa nullable TId
-#                                      if listnode1 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode1
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode3.append(listnode1)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       if tidnode2 != null then
-                                               listnode3.add(tidnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(62), node_list)
-       end
-init do end
-end
-private class ReduceAction457
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode2,
-                                               tclassidnode3
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(63), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction458
+private class ReduceAction463
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist2
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
                                                else
-                                                       listnode3.append(listnode2)
+                                                       listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var tclassidnode4 = nodearraylist2
-                                       assert tclassidnode4 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               tclassidnode4
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
                                        )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(63), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction459
+private class ReduceAction464
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       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
+                                       var listnode4 = new Array[Object]
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
                                                else
-                                                       listnode3.append(listnode2)
+                                                       listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               null
+                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               listnode5
                                        )
-                                       node_list = pqualifiednode1
-                                       p.push(p.go_to(63), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction460
+private class ReduceAction465
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
-                                       node_list = tidnode1
-                                       p.push(p.go_to(64), node_list)
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa nullable TId
+                                       var listnode5 = nodearraylist7
+                                       assert listnode5 isa Array[Object]
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction461
+private class ReduceAction466
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tclassidnode1 = nodearraylist1
-                                       assert tclassidnode1 isa nullable TClassid
-                                       node_list = tclassidnode1
-                                       p.push(p.go_to(65), node_list)
-       end
-init do end
-end
-private class ReduceAction462
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       p.push(p.go_to(66), node_list)
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist7
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction463
+private class ReduceAction467
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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(66), node_list)
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist7
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction464
+private class ReduceAction468
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -17936,204 +18970,177 @@ special ReduceAction
                                                        listnode3.append(listnode2)
                                                end
 #                                      end
-                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
+                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
                                                listnode3
                                        )
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(67), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction465
+private class ReduceAction469
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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: nullable ADoc = new ADoc.init_adoc(
-                                               listnode3
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa nullable TKwself
+                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
                                        )
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(67), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction466
+private class ReduceAction470
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(67), node_list)
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa nullable TKwtrue
+                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction467
+private class ReduceAction471
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       node_list = null
-                                       p.push(p.go_to(68), node_list)
+                                       var nodearraylist1 = p.pop
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa nullable TKwfalse
+                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction468
+private class ReduceAction472
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pdocnode1 = nodearraylist1
-                                       assert pdocnode1 isa nullable PDoc
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(68), node_list)
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa nullable TKwnull
+                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction469
+private class ReduceAction473
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(69), node_list)
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa nullable TNumber
+                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction470
+private class ReduceAction474
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(69), node_list)
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa nullable TFloat
+                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction471
+private class ReduceAction475
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       p.push(p.go_to(69), node_list)
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa nullable TChar
+                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
+                                               tcharnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction472
+private class ReduceAction476
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa nullable PPropdef
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(70), node_list)
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa nullable TString
+                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
+                                               tstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction473
+private class ReduceAction477
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction474
+private class ReduceAction478
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable PExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction475
+private class ReduceAction479
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -18142,37 +19149,30 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable PExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var ptypenode4 = nodearraylist8
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               ptypenode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction476
+private class ReduceAction480
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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
@@ -18182,245 +19182,215 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable PExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode4 = nodearraylist8
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullnode5 = nodearraylist10
+                                       assert tkwnullnode5 isa nullable TKwnull
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               tkwnotnode4,
+                                               tkwnullnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction477
+private class ReduceAction481
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+#                                      if listnode2 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode2
+                                               else
+                                                       listnode4.append(listnode2)
+                                               end
+#                                      end
+                                       if pexprnode3 != null then
+                                               listnode4.add(pexprnode3)
+                                       end
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode4
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction478
+private class ReduceAction482
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+#                                      if listnode2 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode2
+                                               else
+                                                       listnode5.append(listnode2)
+                                               end
+#                                      end
+#                                      if listnode3 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode3
+                                               else
+                                                       listnode5.append(listnode3)
+                                               end
+#                                      end
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode5
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(53), node_list)
        end
 init do end
 end
-private class ReduceAction479
+private class ReduceAction483
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PDoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(54), node_list)
+       end
+init do end
+end
+private class ReduceAction484
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstartstringnode2 = nodearraylist1
+                                       assert tstartstringnode2 isa nullable TStartString
+                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
+                                               tstartstringnode2
                                        )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(55), node_list)
        end
 init do end
 end
-private class ReduceAction480
+private class ReduceAction485
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PDoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable PVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable PMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable PSignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(71), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       var pexprnode2 = nodearraylist3
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(56), node_list)
        end
 init do end
 end
-private class ReduceAction481
+private class ReduceAction486
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode4
+                                       var tmidstringnode2 = nodearraylist1
+                                       assert tmidstringnode2 isa nullable TMidString
+                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
+                                               tmidstringnode2
                                        )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(72), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(57), node_list)
        end
 init do end
 end
-private class ReduceAction482
+private class ReduceAction487
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4
+                                       var tendstringnode2 = nodearraylist1
+                                       assert tendstringnode2 isa nullable TEndString
+                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
+                                               tendstringnode2
                                        )
-                                       node_list = ptypenode1
-                                       p.push(p.go_to(72), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction483
+private class ReduceAction488
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(73), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction484
+private class ReduceAction489
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18431,42 +19401,27 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       var listnode2 = nodearraylist5
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+#                                      if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
                                                else
-                                                       listnode7.append(listnode6)
+                                                       listnode3.append(listnode2)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(73), node_list)
+                                       node_list = listnode3
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction485
+private class ReduceAction490
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18474,222 +19429,170 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       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 listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(73), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction486
+private class ReduceAction491
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction487
+private class ReduceAction492
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable PExpr
-                                       var tkwelsenode6 = nodearraylist9
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(74), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction488
+private class ReduceAction493
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       var listnode2 = nodearraylist5
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+#                                      if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+#                                      end
+                                       node_list = listnode3
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction489
+private class ReduceAction494
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction490
+private class ReduceAction495
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(75), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction491
+private class ReduceAction496
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction492
+private class ReduceAction497
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwnotnode2 = nodearraylist1
-                                       assert tkwnotnode2 isa nullable TKwnot
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
-                                               tkwnotnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
-       end
-init do end
-end
-private class ReduceAction493
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction494
+private class ReduceAction498
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
+                                       var listnode2 = nodearraylist5
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+#                                      if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+#                                      end
+                                       node_list = listnode3
+                                       p.push(p.go_to(61), node_list)
        end
 init do end
 end
-private class ReduceAction495
+private class ReduceAction499
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -18698,323 +19601,276 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
+                                       var pexprnode1 = nodearraylist3
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       p.push(p.go_to(62), node_list)
        end
 init do end
 end
-private class ReduceAction496
+private class ReduceAction500
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       var listnode2 = new Array[Object]
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa nullable TId
+                                       if tidnode1 != null then
+                                               listnode2.add(tidnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction497
+private class ReduceAction501
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       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 nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var tidnode2 = nodearraylist5
+                                       assert tidnode2 isa nullable TId
+#                                      if listnode1 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode1
+                                               else
+                                                       listnode3.append(listnode1)
+                                               end
+#                                      end
+                                       if tidnode2 != null then
+                                               listnode3.add(tidnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(63), node_list)
        end
 init do end
 end
-private class ReduceAction498
+private class ReduceAction502
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var listnode2 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode2,
+                                               tclassidnode3
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(64), node_list)
        end
 init do end
 end
-private class ReduceAction499
+private class ReduceAction503
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 tclassidnode4 = nodearraylist2
+                                       assert tclassidnode4 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(64), node_list)
        end
 init do end
 end
-private class ReduceAction500
+private class ReduceAction504
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(64), node_list)
        end
 init do end
 end
-private class ReduceAction501
+private class ReduceAction505
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       var tidnode1 = nodearraylist1
+                                       assert tidnode1 isa nullable TId
+                                       node_list = tidnode1
+                                       p.push(p.go_to(65), node_list)
        end
 init do end
 end
-private class ReduceAction502
+private class ReduceAction506
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable PType
-                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
-                                               pexprnode2,
-                                               ptypenode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(77), node_list)
+                                       var tclassidnode1 = nodearraylist1
+                                       assert tclassidnode1 isa nullable TClassid
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(66), node_list)
        end
 init do end
 end
-private class ReduceAction503
+private class ReduceAction507
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction504
+private class ReduceAction508
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction505
+private class ReduceAction509
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(78), node_list)
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction506
+private class ReduceAction510
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       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: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
+                                       )
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction507
+private class ReduceAction511
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       node_list = null
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction508
+private class ReduceAction512
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       node_list = null
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
-private class ReduceAction509
+private class ReduceAction513
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(79), node_list)
+                                       var pdocnode1 = nodearraylist1
+                                       assert pdocnode1 isa nullable ADoc
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
-private class ReduceAction510
+private class ReduceAction514
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
-private class ReduceAction511
+private class ReduceAction515
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19022,191 +19878,419 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
-private class ReduceAction512
+private class ReduceAction516
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
-private class ReduceAction513
+private class ReduceAction517
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       var ppropdefnode1 = nodearraylist1
+                                       assert ppropdefnode1 isa nullable APropdef
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(71), node_list)
        end
 init do end
 end
-private class ReduceAction514
+private class ReduceAction518
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
                                                null,
-                                               listnode6
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction515
+private class ReduceAction519
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-                                       var tattridnode4 = nodearraylist5
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction516
+private class ReduceAction520
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode4 = nodearraylist2
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction517
+private class ReduceAction521
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexprnode8 = nodearraylist8
+                                       assert pexprnode8 isa nullable AExpr
+                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               pexprnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
-private class ReduceAction518
+private class ReduceAction522
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
                                        )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
+       end
+init do end
+end
+private class ReduceAction523
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
+       end
+init do end
+end
+private class ReduceAction524
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
+       end
+init do end
+end
+private class ReduceAction525
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
+       end
+init do end
+end
+private class ReduceAction526
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               tclassidnode3,
+                                               listnode4
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(73), node_list)
+       end
+init do end
+end
+private class ReduceAction527
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode4
                                        )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(73), node_list)
+       end
+init do end
+end
+private class ReduceAction528
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction519
+private class ReduceAction529
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -19218,26 +20302,36 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+#                                      if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+#                                      end
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction520
+private class ReduceAction530
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        var tidnode3 = nodearraylist1
@@ -19251,419 +20345,396 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+#                                      if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+#                                      end
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
-private class ReduceAction521
+private class ReduceAction531
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       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 pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction522
+private class ReduceAction532
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable PQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(75), node_list)
        end
 init do end
 end
-private class ReduceAction523
+private class ReduceAction533
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction524
+private class ReduceAction534
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       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 pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
                                                pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction525
+private class ReduceAction535
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
-                                       var tidnode4 = nodearraylist6
-                                       assert tidnode4 isa nullable TId
-                                       var listnode5 = nodearraylist7
-                                       assert listnode5 isa Array[Object]
-#                                      if listnode5 != null then
-                                               if listnode6.is_empty then
-                                                       listnode6 = listnode5
-                                               else
-                                                       listnode6.append(listnode5)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(76), node_list)
        end
 init do end
 end
-private class ReduceAction526
+private class ReduceAction536
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction527
+private class ReduceAction537
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwtruenode2 = nodearraylist1
-                                       assert tkwtruenode2 isa nullable TKwtrue
-                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
-                                               tkwtruenode2
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(77), node_list)
        end
 init do end
 end
-private class ReduceAction528
+private class ReduceAction538
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2
-                                       )
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction529
+private class ReduceAction539
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction530
+private class ReduceAction540
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction531
+private class ReduceAction541
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction532
+private class ReduceAction542
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction533
+private class ReduceAction543
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2
-                                       )
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction534
+private class ReduceAction544
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction535
+private class ReduceAction545
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
-                                       assert pexprnode1 isa nullable PExpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction536
+private class ReduceAction546
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 nullable PExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist8
-                                       assert ptypenode4 isa nullable PType
-                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
                                                pexprnode2,
-                                               tkwasnode3,
-                                               ptypenode4
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction537
+private class ReduceAction547
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist8
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullnode5 = nodearraylist10
-                                       assert tkwnullnode5 isa nullable TKwnull
-                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                       assert pexprnode2 isa nullable AExpr
+                                       var ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
                                                pexprnode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullnode5
+                                               ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       p.push(p.go_to(78), node_list)
        end
 init do end
 end
-private class ReduceAction538
+private class ReduceAction548
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(79), node_list)
        end
 init do end
 end
-private class ReduceAction539
+private class ReduceAction549
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19672,21 +20743,2144 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable PExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       p.push(p.go_to(79), node_list)
+       end
+init do end
+end
+private class ReduceAction550
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(79), node_list)
+       end
+init do end
+end
+private class ReduceAction551
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(80), node_list)
+       end
+init do end
+end
+private class ReduceAction552
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(80), node_list)
+       end
+init do end
+end
+private class ReduceAction553
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(80), node_list)
+       end
+init do end
+end
+private class ReduceAction554
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(80), node_list)
+       end
+init do end
+end
+private class ReduceAction555
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(81), node_list)
+       end
+init do end
+end
+private class ReduceAction556
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(81), node_list)
+       end
+init do end
+end
+private class ReduceAction557
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(81), node_list)
+       end
+init do end
+end
+private class ReduceAction558
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(82), node_list)
+       end
+init do end
+end
+private class ReduceAction559
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(82), node_list)
+       end
+init do end
+end
+private class ReduceAction560
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist5
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(82), node_list)
+       end
+init do end
+end
+private class ReduceAction561
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode4 = nodearraylist2
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(82), node_list)
+       end
+init do end
+end
+private class ReduceAction562
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction563
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction564
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction565
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       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 pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction566
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       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 pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction567
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction568
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction569
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       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 pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction570
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode6 = new Array[Object]
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa nullable TId
+                                       var listnode5 = nodearraylist7
+                                       assert listnode5 isa Array[Object]
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
+                                               else
+                                                       listnode6.append(listnode5)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction571
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa nullable TKwself
+                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction572
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa nullable TKwtrue
+                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction573
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa nullable TKwfalse
+                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction574
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa nullable TKwnull
+                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction575
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tnumbernode2 = nodearraylist1
+                                       assert tnumbernode2 isa nullable TNumber
+                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
+                                               tnumbernode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction576
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa nullable TFloat
+                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction577
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa nullable TChar
+                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
+                                               tcharnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction578
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa nullable TString
+                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
+                                               tstringnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction579
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction580
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist2
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction581
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var ptypenode4 = nodearraylist8
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               ptypenode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction582
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode4 = nodearraylist8
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullnode5 = nodearraylist10
+                                       assert tkwnullnode5 isa nullable TKwnull
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               tkwnotnode4,
+                                               tkwnullnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(83), node_list)
+       end
+init do end
+end
+private class ReduceAction583
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist2
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
+       end
+init do end
+end
+private class ReduceAction584
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       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 pexprnode2 = nodearraylist2
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
+       end
+init do end
+end
+private class ReduceAction585
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
+       end
+init do end
+end
+private class ReduceAction586
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
+       end
+init do end
+end
+private class ReduceAction587
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(84), node_list)
+       end
+init do end
+end
+private class ReduceAction588
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction589
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction590
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction591
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction592
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction593
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction594
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction595
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction596
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa nullable TKwabort
+                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction597
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction598
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction599
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction600
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction601
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction602
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction603
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction604
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction605
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction606
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction607
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       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 pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction608
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+#                                      if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction609
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       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 listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+#                                      if listnode6 != null then
+                                               if listnode7.is_empty then
+                                                       listnode7 = listnode6
+                                               else
+                                                       listnode7.append(listnode6)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               listnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction610
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var tkwsupernode3 = nodearraylist1
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       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 pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               null,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction611
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction612
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction613
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       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 pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(85), node_list)
+       end
+init do end
+end
+private class ReduceAction614
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       if pclosuredefnode1 != null then
+                                               listnode2.add(pclosuredefnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(86), node_list)
+       end
+init do end
+end
+private class ReduceAction615
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pclosuredefnode1 = nodearraylist1
+                                       assert pclosuredefnode1 isa nullable AClosureDef
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pclosuredefnode1 != null then
+                                               listnode3.add(pclosuredefnode1)
+                                       end
+#                                      if listnode2 != null then
+                                               if listnode3.is_empty then
+                                                       listnode3 = listnode2
+                                               else
+                                                       listnode3.append(listnode2)
+                                               end
+#                                      end
+                                       node_list = listnode3
+                                       p.push(p.go_to(86), node_list)
+       end
+init do end
+end
+private class ReduceAction616
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction617
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+#                                      end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction618
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction619
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction620
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction621
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+#                                      end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction622
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       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 tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction623
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction624
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist7
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode8
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction625
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+#                                      end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist8
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode9
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction626
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       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 tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var plabelnode7 = nodearraylist5
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction627
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var plabelnode7 = nodearraylist4
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction628
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist8
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode9
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction629
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
+                                               else
+                                                       listnode9.append(listnode8)
+                                               end
+#                                      end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
+                                       )
+                                       var plabelnode10 = nodearraylist9
+                                       assert plabelnode10 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode10
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
+       end
+init do end
+end
+private class ReduceAction630
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist6
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
+                                       )
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction540
+private class ReduceAction631
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -19697,13 +22891,10 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable PExpr
-                                       var listnode3 = nodearraylist3
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
 #                                      if listnode3 != null then
                                                if listnode4.is_empty then
                                                        listnode4 = listnode3
@@ -19711,277 +22902,448 @@ special ReduceAction
                                                        listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction541
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2
+                                       var plabelnode8 = nodearraylist5
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction542
+private class ReduceAction632
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2
+                                       var listnode3 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var tkwdonode4 = nodearraylist2
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), node_list)
-       end
-init do end
-end
-private class ReduceAction543
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
-       end
-init do end
-end
-private class ReduceAction544
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction545
+private class ReduceAction633
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
+                                       var listnode4 = new Array[Object]
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tkwdonode5 = nodearraylist3
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
+                                               tkwwithnode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
                                                null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       node_list = pclosuredefnode1
+                                       p.push(p.go_to(87), node_list)
        end
 init do end
 end
-private class ReduceAction546
+private class ReduceAction634
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               pexprnode3
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction547
+private class ReduceAction635
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction548
+private class ReduceAction636
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               pexprnode3
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               null,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction549
+private class ReduceAction637
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwabortnode2 = nodearraylist1
-                                       assert tkwabortnode2 isa nullable TKwabort
-                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
-                                               tkwabortnode2
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(88), node_list)
        end
 init do end
 end
-private class ReduceAction550
+private class ReduceAction638
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist5
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction551
+private class ReduceAction639
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               pexprnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist2
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction552
+private class ReduceAction640
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+#                                      if listnode4 != null then
+                                               if listnode5.is_empty then
+                                                       listnode5 = listnode4
+                                               else
+                                                       listnode5.append(listnode4)
+                                               end
+#                                      end
+                                       var tassignnode6 = nodearraylist6
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction553
+private class ReduceAction641
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       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 tassignnode6 = nodearraylist3
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               listnode5,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction554
+private class ReduceAction642
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
+                                               else
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               tassignnode5,
+                                               pexprnode6
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction555
+private class ReduceAction643
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist4
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist5
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction556
+private class ReduceAction644
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       )
+                                       var tattridnode3 = nodearraylist1
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist2
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist3
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction557
+private class ReduceAction645
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -19993,26 +23355,32 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var passignopnode6 = nodearraylist6
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               listnode6
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction558
+private class ReduceAction646
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        var tidnode3 = nodearraylist1
@@ -20026,64 +23394,131 @@ special ReduceAction
                                                        listnode5.append(listnode4)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var passignopnode6 = nodearraylist3
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                listnode5,
-                                               listnode6
+                                               passignopnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(89), node_list)
        end
 init do end
 end
-private class ReduceAction559
+private class ReduceAction647
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode4 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+#                                      if listnode3 != null then
+                                               if listnode4.is_empty then
+                                                       listnode4 = listnode3
                                                else
-                                                       listnode5.append(listnode4)
+                                                       listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               passignopnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(89), node_list)
+       end
+init do end
+end
+private class ReduceAction648
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction649
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       if pexprnode4 != null then
+                                               listnode6.add(pexprnode4)
+                                       end
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
                                                else
-                                                       listnode7.append(listnode6)
+                                                       listnode6.append(listnode5)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction560
+private class ReduceAction650
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20091,621 +23526,745 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
                                        )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       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 listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-#                                      if listnode6 != null then
-                                               if listnode7.is_empty then
-                                                       listnode7 = listnode6
-                                               else
-                                                       listnode7.append(listnode6)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction561
+private class ReduceAction651
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       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 pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               listnode5
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction562
+private class ReduceAction652
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
                                        var listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable PQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
                                                listnode5
                                        )
+                                       var plabelnode6 = nodearraylist6
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode6
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction563
+private class ReduceAction653
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       if pexprnode4 != null then
+                                               listnode6.add(pexprnode4)
+                                       end
+#                                      if listnode5 != null then
+                                               if listnode6.is_empty then
+                                                       listnode6 = listnode5
                                                else
-                                                       listnode5.append(listnode4)
+                                                       listnode6.append(listnode5)
                                                end
 #                                      end
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var plabelnode7 = nodearraylist7
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction564
+private class ReduceAction654
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
                                        )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       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 pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
+                                       var plabelnode5 = nodearraylist4
+                                       assert plabelnode5 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(84), node_list)
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction565
+private class ReduceAction655
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable PClosureDef
-                                       if pclosuredefnode1 != null then
-                                               listnode2.add(pclosuredefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(85), node_list)
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4
+                                       )
+                                       var plabelnode5 = nodearraylist3
+                                       assert plabelnode5 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
        end
 init do end
 end
-private class ReduceAction566
+private class ReduceAction656
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       assert pclosuredefnode1 isa nullable PClosureDef
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pclosuredefnode1 != null then
-                                               listnode3.add(pclosuredefnode1)
-                                       end
-#                                      if listnode2 != null then
-                                               if listnode3.is_empty then
-                                                       listnode3 = listnode2
-                                               else
-                                                       listnode3.append(listnode2)
-                                               end
-#                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(85), node_list)
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(90), node_list)
+       end
+init do end
+end
+private class ReduceAction657
+special ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable 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 tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(91), node_list)
        end
 init do end
 end
-private class ReduceAction567
+private class ReduceAction658
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode3 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var tkwdonode4 = nodearraylist2
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
                                        assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode3,
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
                                                tkwdonode4,
-                                               pexprnode5
+                                               pexprnode5,
+                                               null
                                        )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(86), node_list)
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction568
+private class ReduceAction659
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode4 = new Array[Object]
-                                       var tkwwithnode2 = nodearraylist1
-                                       assert tkwwithnode2 isa nullable TKwwith
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode8.append(listnode7)
                                                end
 #                                      end
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tkwwithnode2,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
                                        )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(86), node_list)
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction569
+private class ReduceAction660
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction570
+private class ReduceAction661
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable PType
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               null,
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
                                                null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction571
+private class ReduceAction662
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist10
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction572
+private class ReduceAction663
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable PType
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist8
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+#                                      if listnode7 != null then
+                                               if listnode8.is_empty then
+                                                       listnode8 = listnode7
+                                               else
+                                                       listnode8.append(listnode7)
+                                               end
+#                                      end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist11
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(87), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction573
+private class ReduceAction664
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist5
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
+                                       )
+                                       var plabelnode7 = nodearraylist8
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction574
+private class ReduceAction665
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode6 = new Array[Object]
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6
                                        )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var plabelnode7 = nodearraylist7
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction575
+private class ReduceAction666
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var tassignnode6 = nodearraylist6
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(92), node_list)
        end
 init do end
 end
-private class ReduceAction576
+private class ReduceAction667
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       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 tassignnode6 = nodearraylist3
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
                                                tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction577
+private class ReduceAction668
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       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
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist12
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction578
+private class ReduceAction669
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
-                                       assert passignopnode4 isa nullable PAssignOp
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction579
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
                                        )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
-                                       assert passignopnode4 isa nullable PAssignOp
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction580
+private class ReduceAction670
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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
@@ -20713,136 +24272,152 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var tidnode3 = nodearraylist4
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-#                                      if listnode4 != null then
-                                               if listnode5.is_empty then
-                                                       listnode5 = listnode4
-                                               else
-                                                       listnode5.append(listnode4)
-                                               end
-#                                      end
-                                       var passignopnode6 = nodearraylist6
-                                       assert passignopnode6 isa nullable PAssignOp
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
                                                tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction581
+private class ReduceAction671
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       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
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       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 passignopnode6 = nodearraylist3
-                                       assert passignopnode6 isa nullable PAssignOp
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable PExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8
+                                       )
+                                       var plabelnode9 = nodearraylist14
+                                       assert plabelnode9 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
                                                tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode9
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction582
+private class ReduceAction672
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist15 = p.pop
+                                       var nodearraylist14 = p.pop
+                                       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
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-#                                      if listnode3 != null then
-                                               if listnode4.is_empty then
-                                                       listnode4 = listnode3
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode9 = new Array[Object]
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var listnode8 = nodearraylist12
+                                       assert listnode8 isa Array[Object]
+                                       if pexprnode7 != null then
+                                               listnode9.add(pexprnode7)
+                                       end
+#                                      if listnode8 != null then
+                                               if listnode9.is_empty then
+                                                       listnode9 = listnode8
                                                else
-                                                       listnode4.append(listnode3)
+                                                       listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var passignopnode5 = nodearraylist3
-                                       assert passignopnode5 isa nullable PAssignOp
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable PExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode9
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(88), node_list)
-       end
-init do end
-end
-private class ReduceAction583
-special ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3
+                                       var plabelnode10 = nodearraylist15
+                                       assert plabelnode10 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode10
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(89), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction584
+private class ReduceAction673
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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
@@ -20851,56 +24426,77 @@ special ReduceAction
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable PExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist12
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
                                                pexprnode4,
-                                               pexprnode5
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(90), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction585
+private class ReduceAction674
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable 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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable PExpr
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwdonode5 = nodearraylist9
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7
+                                       )
+                                       var plabelnode8 = nodearraylist11
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode8
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(91), node_list)
+                                       p.push(p.go_to(93), node_list)
        end
 init do end
 end
-private class ReduceAction586
+private class ReduceAction675
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20920,24 +24516,25 @@ special ReduceAction
                                        var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
                                        var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable PExpr
+                                       assert pexprnode4 isa nullable AExpr
                                        var tkwdonode5 = nodearraylist9
                                        assert tkwdonode5 isa nullable TKwdo
                                        var pexprnode6 = nodearraylist10
-                                       assert pexprnode6 isa nullable PExpr
+                                       assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
                                                tkwfornode2,
                                                tidnode3,
                                                pexprnode4,
                                                tkwdonode5,
-                                               pexprnode6
+                                               pexprnode6,
+                                               null
                                        )
                                        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 ReduceAction587
+private class ReduceAction676
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20947,18 +24544,18 @@ special ReduceAction
                                        var tkwassertnode2 = nodearraylist1
                                        assert tkwassertnode2 isa nullable TKwassert
                                        var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable PExpr
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
                                                tkwassertnode2,
                                                null,
                                                pexprnode4
                                        )
                                        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 ReduceAction588
+private class ReduceAction677
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -20971,31 +24568,31 @@ special ReduceAction
                                        var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
                                        var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable PExpr
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
                                                tkwassertnode2,
                                                tidnode3,
                                                pexprnode4
                                        )
                                        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 ReduceAction589
+private class ReduceAction678
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        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 ReduceAction590
+private class ReduceAction679
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21009,7 +24606,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -21037,11 +24634,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 ReduceAction591
+private class ReduceAction680
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21080,11 +24677,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 ReduceAction592
+private class ReduceAction681
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21095,7 +24692,7 @@ special ReduceAction
                                        var listnode4 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
 #                                      if listnode3 != null then
@@ -21120,24 +24717,24 @@ special ReduceAction
                                                listnode6
                                        )
                                        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 ReduceAction593
+private class ReduceAction682
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction594
+private class ReduceAction683
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21151,7 +24748,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -21179,11 +24776,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction595
+private class ReduceAction684
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21222,24 +24819,24 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(95), node_list)
+                                       p.push(p.go_to(96), node_list)
        end
 init do end
 end
-private class ReduceAction596
+private class ReduceAction685
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction597
+private class ReduceAction686
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21253,7 +24850,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -21281,11 +24878,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction598
+private class ReduceAction687
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21324,24 +24921,24 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(96), node_list)
+                                       p.push(p.go_to(97), node_list)
        end
 init do end
 end
-private class ReduceAction599
+private class ReduceAction688
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(97), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction600
+private class ReduceAction689
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21360,15 +24957,15 @@ special ReduceAction
                                        var tkwifnode2 = nodearraylist1
                                        assert tkwifnode2 isa nullable TKwif
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var tkwthennode4 = nodearraylist5
                                        assert tkwthennode4 isa nullable TKwthen
                                        var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable PExpr
+                                       assert pexprnode5 isa nullable AExpr
                                        var tkwelsenode6 = nodearraylist9
                                        assert tkwelsenode6 isa nullable TKwelse
                                        var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable PExpr
+                                       assert pexprnode7 isa nullable AExpr
                                        var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
                                                tkwifnode2,
                                                pexprnode3,
@@ -21378,24 +24975,24 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(97), node_list)
+                                       p.push(p.go_to(98), node_list)
        end
 init do end
 end
-private class ReduceAction601
+private class ReduceAction690
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction602
+private class ReduceAction691
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21405,19 +25002,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction603
+private class ReduceAction692
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21427,32 +25024,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(98), node_list)
+                                       p.push(p.go_to(99), node_list)
        end
 init do end
 end
-private class ReduceAction604
+private class ReduceAction693
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction605
+private class ReduceAction694
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21463,30 +25060,30 @@ special ReduceAction
                                        var tkwnotnode2 = nodearraylist1
                                        assert tkwnotnode2 isa nullable TKwnot
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
                                                tkwnotnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(99), node_list)
+                                       p.push(p.go_to(100), node_list)
        end
 init do end
 end
-private class ReduceAction606
+private class ReduceAction695
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction607
+private class ReduceAction696
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21496,19 +25093,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction608
+private class ReduceAction697
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21518,19 +25115,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction609
+private class ReduceAction698
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21540,19 +25137,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction610
+private class ReduceAction699
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21562,19 +25159,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction611
+private class ReduceAction700
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21584,19 +25181,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction612
+private class ReduceAction701
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21606,19 +25203,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction613
+private class ReduceAction702
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21628,19 +25225,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction614
+private class ReduceAction703
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21650,19 +25247,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction615
+private class ReduceAction704
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21672,32 +25269,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
                                                pexprnode2,
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(100), node_list)
+                                       p.push(p.go_to(101), node_list)
        end
 init do end
 end
-private class ReduceAction616
+private class ReduceAction705
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction617
+private class ReduceAction706
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21707,19 +25304,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction618
+private class ReduceAction707
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21729,32 +25326,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(101), node_list)
+                                       p.push(p.go_to(102), node_list)
        end
 init do end
 end
-private class ReduceAction619
+private class ReduceAction708
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction620
+private class ReduceAction709
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21764,19 +25361,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction621
+private class ReduceAction710
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21786,19 +25383,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction622
+private class ReduceAction711
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21808,32 +25405,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(102), node_list)
+                                       p.push(p.go_to(103), node_list)
        end
 init do end
 end
-private class ReduceAction623
+private class ReduceAction712
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction624
+private class ReduceAction713
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21844,17 +25441,17 @@ special ReduceAction
                                        var tminusnode2 = nodearraylist1
                                        assert tminusnode2 isa nullable TMinus
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
                                                tminusnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction625
+private class ReduceAction714
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21865,30 +25462,30 @@ special ReduceAction
                                        var tkwoncenode2 = nodearraylist1
                                        assert tkwoncenode2 isa nullable TKwonce
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
                                                tkwoncenode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(103), node_list)
+                                       p.push(p.go_to(104), node_list)
        end
 init do end
 end
-private class ReduceAction626
+private class ReduceAction715
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction627
+private class ReduceAction716
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21901,7 +25498,7 @@ special ReduceAction
                                        var tkwnewnode2 = nodearraylist1
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
 #                                      if listnode5 != null then
@@ -21918,11 +25515,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction628
+private class ReduceAction717
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21935,7 +25532,7 @@ special ReduceAction
                                        var tkwissetnode2 = nodearraylist1
                                        assert tkwissetnode2 isa nullable TKwisset
                                        var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var tattridnode4 = nodearraylist5
                                        assert tattridnode4 isa nullable TAttrid
                                        var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
@@ -21944,11 +25541,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction629
+private class ReduceAction718
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21967,11 +25564,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(104), node_list)
+                                       p.push(p.go_to(105), node_list)
        end
 init do end
 end
-private class ReduceAction630
+private class ReduceAction719
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -21981,7 +25578,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tattridnode3 = nodearraylist4
                                        assert tattridnode3 isa nullable TAttrid
                                        var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
@@ -21989,11 +25586,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction631
+private class ReduceAction720
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22008,11 +25605,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction632
+private class ReduceAction721
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22025,7 +25622,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -22044,11 +25641,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction633
+private class ReduceAction722
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22077,11 +25674,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction634
+private class ReduceAction723
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22106,11 +25703,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction635
+private class ReduceAction724
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22120,7 +25717,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
                                        var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable PQualified
+                                       assert pqualifiednode2 isa nullable AQualified
                                        var tkwsupernode3 = nodearraylist2
                                        assert tkwsupernode3 isa nullable TKwsuper
                                        var listnode4 = nodearraylist3
@@ -22138,11 +25735,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction636
+private class ReduceAction725
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22154,7 +25751,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tkwinitnode3 = nodearraylist4
                                        assert tkwinitnode3 isa nullable TKwinit
                                        var listnode4 = nodearraylist5
@@ -22172,11 +25769,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction637
+private class ReduceAction726
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22203,11 +25800,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction638
+private class ReduceAction727
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22223,7 +25820,7 @@ special ReduceAction
                                        var tkwnewnode2 = nodearraylist1
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var tidnode4 = nodearraylist6
                                        assert tidnode4 isa nullable TId
                                        var listnode5 = nodearraylist7
@@ -22242,11 +25839,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction639
+private class ReduceAction728
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22258,11 +25855,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction640
+private class ReduceAction729
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22274,11 +25871,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction641
+private class ReduceAction730
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22290,11 +25887,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction642
+private class ReduceAction731
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22306,11 +25903,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction643
+private class ReduceAction732
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22322,11 +25919,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction644
+private class ReduceAction733
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22338,11 +25935,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction645
+private class ReduceAction734
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22354,11 +25951,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction646
+private class ReduceAction735
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22370,24 +25967,24 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction647
+private class ReduceAction736
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction648
+private class ReduceAction737
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22403,22 +26000,22 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tkwasnode3 = nodearraylist4
                                        assert tkwasnode3 isa nullable TKwas
                                        var ptypenode4 = nodearraylist8
-                                       assert ptypenode4 isa nullable PType
+                                       assert ptypenode4 isa nullable AType
                                        var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
                                                pexprnode2,
                                                tkwasnode3,
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction649
+private class ReduceAction738
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22436,7 +26033,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tkwasnode3 = nodearraylist4
                                        assert tkwasnode3 isa nullable TKwas
                                        var tkwnotnode4 = nodearraylist8
@@ -22450,24 +26047,24 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(105), node_list)
+                                       p.push(p.go_to(106), node_list)
        end
 init do end
 end
-private class ReduceAction650
+private class ReduceAction739
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction651
+private class ReduceAction740
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22481,7 +26078,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -22509,11 +26106,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction652
+private class ReduceAction741
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22552,24 +26149,24 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(106), node_list)
+                                       p.push(p.go_to(107), node_list)
        end
 init do end
 end
-private class ReduceAction653
+private class ReduceAction742
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction654
+private class ReduceAction743
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22588,15 +26185,15 @@ special ReduceAction
                                        var tkwifnode2 = nodearraylist1
                                        assert tkwifnode2 isa nullable TKwif
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var tkwthennode4 = nodearraylist5
                                        assert tkwthennode4 isa nullable TKwthen
                                        var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable PExpr
+                                       assert pexprnode5 isa nullable AExpr
                                        var tkwelsenode6 = nodearraylist9
                                        assert tkwelsenode6 isa nullable TKwelse
                                        var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable PExpr
+                                       assert pexprnode7 isa nullable AExpr
                                        var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
                                                tkwifnode2,
                                                pexprnode3,
@@ -22606,24 +26203,24 @@ special ReduceAction
                                                pexprnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(107), node_list)
+                                       p.push(p.go_to(108), node_list)
        end
 init do end
 end
-private class ReduceAction655
+private class ReduceAction744
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction656
+private class ReduceAction745
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22633,19 +26230,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction657
+private class ReduceAction746
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22655,32 +26252,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(108), node_list)
+                                       p.push(p.go_to(109), node_list)
        end
 init do end
 end
-private class ReduceAction658
+private class ReduceAction747
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction659
+private class ReduceAction748
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22691,30 +26288,30 @@ special ReduceAction
                                        var tkwnotnode2 = nodearraylist1
                                        assert tkwnotnode2 isa nullable TKwnot
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
                                                tkwnotnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(109), node_list)
+                                       p.push(p.go_to(110), node_list)
        end
 init do end
 end
-private class ReduceAction660
+private class ReduceAction749
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction661
+private class ReduceAction750
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22724,19 +26321,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction662
+private class ReduceAction751
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22746,19 +26343,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction663
+private class ReduceAction752
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22768,19 +26365,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction664
+private class ReduceAction753
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22790,19 +26387,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction665
+private class ReduceAction754
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22812,19 +26409,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction666
+private class ReduceAction755
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22834,19 +26431,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction667
+private class ReduceAction756
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22856,19 +26453,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction668
+private class ReduceAction757
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22878,19 +26475,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction669
+private class ReduceAction758
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22900,32 +26497,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
                                                pexprnode2,
                                                ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(110), node_list)
+                                       p.push(p.go_to(111), node_list)
        end
 init do end
 end
-private class ReduceAction670
+private class ReduceAction759
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction671
+private class ReduceAction760
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22935,19 +26532,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction672
+private class ReduceAction761
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22957,32 +26554,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(111), node_list)
+                                       p.push(p.go_to(112), node_list)
        end
 init do end
 end
-private class ReduceAction673
+private class ReduceAction762
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction674
+private class ReduceAction763
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -22992,19 +26589,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction675
+private class ReduceAction764
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23014,19 +26611,19 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction676
+private class ReduceAction765
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23036,32 +26633,32 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
                                                pexprnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(112), node_list)
+                                       p.push(p.go_to(113), node_list)
        end
 init do end
 end
-private class ReduceAction677
+private class ReduceAction766
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction678
+private class ReduceAction767
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23072,17 +26669,17 @@ special ReduceAction
                                        var tminusnode2 = nodearraylist1
                                        assert tminusnode2 isa nullable TMinus
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
                                                tminusnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction679
+private class ReduceAction768
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23093,30 +26690,30 @@ special ReduceAction
                                        var tkwoncenode2 = nodearraylist1
                                        assert tkwoncenode2 isa nullable TKwonce
                                        var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
                                                tkwoncenode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(113), node_list)
+                                       p.push(p.go_to(114), node_list)
        end
 init do end
 end
-private class ReduceAction680
+private class ReduceAction769
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction681
+private class ReduceAction770
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23129,7 +26726,7 @@ special ReduceAction
                                        var tkwnewnode2 = nodearraylist1
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var listnode5 = nodearraylist4
                                        assert listnode5 isa Array[Object]
 #                                      if listnode5 != null then
@@ -23146,11 +26743,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction682
+private class ReduceAction771
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23161,7 +26758,7 @@ special ReduceAction
                                        var tkwissetnode2 = nodearraylist1
                                        assert tkwissetnode2 isa nullable TKwisset
                                        var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable PExpr
+                                       assert pexprnode3 isa nullable AExpr
                                        var tattridnode4 = nodearraylist3
                                        assert tattridnode4 isa nullable TAttrid
                                        var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
@@ -23170,11 +26767,11 @@ special ReduceAction
                                                tattridnode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(114), node_list)
+                                       p.push(p.go_to(115), node_list)
        end
 init do end
 end
-private class ReduceAction683
+private class ReduceAction772
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23182,7 +26779,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tattridnode3 = nodearraylist2
                                        assert tattridnode3 isa nullable TAttrid
                                        var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
@@ -23190,11 +26787,11 @@ special ReduceAction
                                                tattridnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction684
+private class ReduceAction773
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23205,7 +26802,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist3
@@ -23224,11 +26821,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction685
+private class ReduceAction774
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23253,11 +26850,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction686
+private class ReduceAction775
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23267,7 +26864,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
                                        var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable PQualified
+                                       assert pqualifiednode2 isa nullable AQualified
                                        var tkwsupernode3 = nodearraylist2
                                        assert tkwsupernode3 isa nullable TKwsuper
                                        var listnode4 = nodearraylist3
@@ -23285,11 +26882,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction687
+private class ReduceAction776
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23299,7 +26896,7 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode5 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tkwinitnode3 = nodearraylist2
                                        assert tkwinitnode3 isa nullable TKwinit
                                        var listnode4 = nodearraylist3
@@ -23317,11 +26914,11 @@ special ReduceAction
                                                listnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction688
+private class ReduceAction777
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23337,7 +26934,7 @@ special ReduceAction
                                        var tkwnewnode2 = nodearraylist1
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable PType
+                                       assert ptypenode3 isa nullable AType
                                        var tidnode4 = nodearraylist6
                                        assert tidnode4 isa nullable TId
                                        var listnode5 = nodearraylist7
@@ -23356,11 +26953,11 @@ special ReduceAction
                                                listnode6
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction689
+private class ReduceAction778
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23372,11 +26969,11 @@ special ReduceAction
                                                tkwselfnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction690
+private class ReduceAction779
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23388,11 +26985,11 @@ special ReduceAction
                                                tkwtruenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction691
+private class ReduceAction780
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23404,11 +27001,11 @@ special ReduceAction
                                                tkwfalsenode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction692
+private class ReduceAction781
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23420,11 +27017,11 @@ special ReduceAction
                                                tkwnullnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction693
+private class ReduceAction782
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23436,11 +27033,11 @@ special ReduceAction
                                                tnumbernode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction694
+private class ReduceAction783
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23452,11 +27049,11 @@ special ReduceAction
                                                tfloatnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction695
+private class ReduceAction784
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23468,11 +27065,11 @@ special ReduceAction
                                                tcharnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction696
+private class ReduceAction785
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23484,24 +27081,24 @@ special ReduceAction
                                                tstringnode2
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction697
+private class ReduceAction786
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction698
+private class ReduceAction787
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23517,22 +27114,22 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tkwasnode3 = nodearraylist4
                                        assert tkwasnode3 isa nullable TKwas
                                        var ptypenode4 = nodearraylist8
-                                       assert ptypenode4 isa nullable PType
+                                       assert ptypenode4 isa nullable AType
                                        var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
                                                pexprnode2,
                                                tkwasnode3,
                                                ptypenode4
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction699
+private class ReduceAction788
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23550,7 +27147,7 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tkwasnode3 = nodearraylist4
                                        assert tkwasnode3 isa nullable TKwas
                                        var tkwnotnode4 = nodearraylist8
@@ -23564,11 +27161,11 @@ special ReduceAction
                                                tkwnullnode5
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(115), node_list)
+                                       p.push(p.go_to(116), node_list)
        end
 init do end
 end
-private class ReduceAction700
+private class ReduceAction789
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23577,13 +27174,13 @@ special ReduceAction
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction701
+private class ReduceAction790
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23591,24 +27188,24 @@ special ReduceAction
                                        var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(116), node_list)
+                                       p.push(p.go_to(117), node_list)
        end
 init do end
 end
-private class ReduceAction702
+private class ReduceAction791
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction703
+private class ReduceAction792
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23622,7 +27219,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -23650,11 +27247,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction704
+private class ReduceAction793
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23693,24 +27290,24 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(117), node_list)
+                                       p.push(p.go_to(118), node_list)
        end
 init do end
 end
-private class ReduceAction705
+private class ReduceAction794
 special ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction706
+private class ReduceAction795
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23724,7 +27321,7 @@ special ReduceAction
                                        var listnode5 = new Array[Object]
                                        var listnode7 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
                                        var listnode4 = nodearraylist5
@@ -23752,11 +27349,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction707
+private class ReduceAction796
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23795,11 +27392,11 @@ special ReduceAction
                                                listnode7
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(118), node_list)
+                                       p.push(p.go_to(119), node_list)
        end
 init do end
 end
-private class ReduceAction708
+private class ReduceAction797
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23807,16 +27404,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pimportnode1 = nodearraylist1
-                                       assert pimportnode1 isa nullable PImport
+                                       assert pimportnode1 isa nullable AImport
                                        if pimportnode1 != null then
                                                listnode2.add(pimportnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction709
+private class ReduceAction798
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23827,7 +27424,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pimportnode2 = nodearraylist2
-                                       assert pimportnode2 isa nullable PImport
+                                       assert pimportnode2 isa nullable AImport
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -23839,11 +27436,11 @@ special ReduceAction
                                                listnode3.add(pimportnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(119), node_list)
+                                       p.push(p.go_to(120), node_list)
        end
 init do end
 end
-private class ReduceAction710
+private class ReduceAction799
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23851,16 +27448,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pclassdefnode1 = nodearraylist1
-                                       assert pclassdefnode1 isa nullable PClassdef
+                                       assert pclassdefnode1 isa nullable AClassdef
                                        if pclassdefnode1 != null then
                                                listnode2.add(pclassdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction711
+private class ReduceAction800
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23871,7 +27468,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pclassdefnode2 = nodearraylist2
-                                       assert pclassdefnode2 isa nullable PClassdef
+                                       assert pclassdefnode2 isa nullable AClassdef
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -23883,11 +27480,11 @@ special ReduceAction
                                                listnode3.add(pclassdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(120), node_list)
+                                       p.push(p.go_to(121), node_list)
        end
 init do end
 end
-private class ReduceAction712
+private class ReduceAction801
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23895,16 +27492,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var psuperclassnode1 = nodearraylist1
-                                       assert psuperclassnode1 isa nullable PSuperclass
+                                       assert psuperclassnode1 isa nullable ASuperclass
                                        if psuperclassnode1 != null then
                                                listnode2.add(psuperclassnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction713
+private class ReduceAction802
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23915,7 +27512,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var psuperclassnode2 = nodearraylist2
-                                       assert psuperclassnode2 isa nullable PSuperclass
+                                       assert psuperclassnode2 isa nullable ASuperclass
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -23927,11 +27524,11 @@ special ReduceAction
                                                listnode3.add(psuperclassnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(121), node_list)
+                                       p.push(p.go_to(122), node_list)
        end
 init do end
 end
-private class ReduceAction714
+private class ReduceAction803
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23939,16 +27536,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pformaldefnode1 = nodearraylist1
-                                       assert pformaldefnode1 isa nullable PFormaldef
+                                       assert pformaldefnode1 isa nullable AFormaldef
                                        if pformaldefnode1 != null then
                                                listnode2.add(pformaldefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction715
+private class ReduceAction804
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23959,7 +27556,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pformaldefnode2 = nodearraylist2
-                                       assert pformaldefnode2 isa nullable PFormaldef
+                                       assert pformaldefnode2 isa nullable AFormaldef
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -23971,11 +27568,11 @@ special ReduceAction
                                                listnode3.add(pformaldefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(122), node_list)
+                                       p.push(p.go_to(123), node_list)
        end
 init do end
 end
-private class ReduceAction716
+private class ReduceAction805
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -23983,16 +27580,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa nullable PPropdef
+                                       assert ppropdefnode1 isa nullable APropdef
                                        if ppropdefnode1 != null then
                                                listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction717
+private class ReduceAction806
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24003,7 +27600,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var ppropdefnode2 = nodearraylist2
-                                       assert ppropdefnode2 isa nullable PPropdef
+                                       assert ppropdefnode2 isa nullable APropdef
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -24015,11 +27612,11 @@ special ReduceAction
                                                listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(123), node_list)
+                                       p.push(p.go_to(124), node_list)
        end
 init do end
 end
-private class ReduceAction718
+private class ReduceAction807
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24027,16 +27624,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pparamnode1 = nodearraylist1
-                                       assert pparamnode1 isa nullable PParam
+                                       assert pparamnode1 isa nullable AParam
                                        if pparamnode1 != null then
                                                listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction719
+private class ReduceAction808
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24047,7 +27644,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pparamnode2 = nodearraylist2
-                                       assert pparamnode2 isa nullable PParam
+                                       assert pparamnode2 isa nullable AParam
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -24059,11 +27656,11 @@ special ReduceAction
                                                listnode3.add(pparamnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(124), node_list)
+                                       p.push(p.go_to(125), node_list)
        end
 init do end
 end
-private class ReduceAction720
+private class ReduceAction809
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24071,16 +27668,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pclosuredeclnode1 = nodearraylist1
-                                       assert pclosuredeclnode1 isa nullable PClosureDecl
+                                       assert pclosuredeclnode1 isa nullable AClosureDecl
                                        if pclosuredeclnode1 != null then
                                                listnode2.add(pclosuredeclnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction721
+private class ReduceAction810
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24091,7 +27688,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pclosuredeclnode2 = nodearraylist2
-                                       assert pclosuredeclnode2 isa nullable PClosureDecl
+                                       assert pclosuredeclnode2 isa nullable AClosureDecl
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -24103,11 +27700,11 @@ special ReduceAction
                                                listnode3.add(pclosuredeclnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(125), node_list)
+                                       p.push(p.go_to(126), node_list)
        end
 init do end
 end
-private class ReduceAction722
+private class ReduceAction811
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24115,16 +27712,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var ptypenode1 = nodearraylist1
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        if ptypenode1 != null then
                                                listnode2.add(ptypenode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction723
+private class ReduceAction812
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24135,7 +27732,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var ptypenode2 = nodearraylist2
-                                       assert ptypenode2 isa nullable PType
+                                       assert ptypenode2 isa nullable AType
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -24147,11 +27744,11 @@ special ReduceAction
                                                listnode3.add(ptypenode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(126), node_list)
+                                       p.push(p.go_to(127), node_list)
        end
 init do end
 end
-private class ReduceAction724
+private class ReduceAction813
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24159,16 +27756,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        if pexprnode1 != null then
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction725
+private class ReduceAction814
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24179,7 +27776,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -24191,11 +27788,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(127), node_list)
+                                       p.push(p.go_to(128), node_list)
        end
 init do end
 end
-private class ReduceAction726
+private class ReduceAction815
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24212,11 +27809,11 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode2
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction727
+private class ReduceAction816
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24243,11 +27840,11 @@ special ReduceAction
                                                end
 #                                      end
                                        node_list = listnode3
-                                       p.push(p.go_to(128), node_list)
+                                       p.push(p.go_to(129), node_list)
        end
 init do end
 end
-private class ReduceAction728
+private class ReduceAction817
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24255,16 +27852,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       assert pexprnode1 isa nullable AExpr
                                        if pexprnode1 != null then
                                                listnode2.add(pexprnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction729
+private class ReduceAction818
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24275,7 +27872,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var pexprnode2 = nodearraylist2
-                                       assert pexprnode2 isa nullable PExpr
+                                       assert pexprnode2 isa nullable AExpr
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -24287,11 +27884,11 @@ special ReduceAction
                                                listnode3.add(pexprnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(129), node_list)
+                                       p.push(p.go_to(130), node_list)
        end
 init do end
 end
-private class ReduceAction730
+private class ReduceAction819
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24304,11 +27901,11 @@ special ReduceAction
                                                listnode2.add(tidnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction731
+private class ReduceAction820
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24331,11 +27928,11 @@ special ReduceAction
                                                listnode3.add(tidnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(130), node_list)
+                                       p.push(p.go_to(131), node_list)
        end
 init do end
 end
-private class ReduceAction732
+private class ReduceAction821
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24348,11 +27945,11 @@ special ReduceAction
                                                listnode2.add(tcommentnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction733
+private class ReduceAction822
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24375,11 +27972,11 @@ special ReduceAction
                                                listnode3.add(tcommentnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(131), node_list)
+                                       p.push(p.go_to(132), node_list)
        end
 init do end
 end
-private class ReduceAction734
+private class ReduceAction823
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24392,11 +27989,11 @@ special ReduceAction
                                                listnode2.add(teolnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end
-private class ReduceAction735
+private class ReduceAction824
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24419,11 +28016,11 @@ special ReduceAction
                                                listnode3.add(teolnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(132), node_list)
+                                       p.push(p.go_to(133), node_list)
        end
 init do end
 end
-private class ReduceAction736
+private class ReduceAction825
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24431,16 +28028,16 @@ special ReduceAction
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var ppropdefnode1 = nodearraylist1
-                                       assert ppropdefnode1 isa nullable PPropdef
+                                       assert ppropdefnode1 isa nullable APropdef
                                        if ppropdefnode1 != null then
                                                listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(134), node_list)
        end
 init do end
 end
-private class ReduceAction737
+private class ReduceAction826
 special ReduceAction
        redef fun action(p: Parser)
        do
@@ -24451,7 +28048,7 @@ special ReduceAction
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
                                        var ppropdefnode2 = nodearraylist2
-                                       assert ppropdefnode2 isa nullable PPropdef
+                                       assert ppropdefnode2 isa nullable APropdef
 #                                      if listnode1 != null then
                                                if listnode3.is_empty then
                                                        listnode3 = listnode1
@@ -24463,7 +28060,7 @@ special ReduceAction
                                                listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
-                                       p.push(p.go_to(133), node_list)
+                                       p.push(p.go_to(134), node_list)
        end
 init do end
 end