parser: remove spaces errors in generated files
[nit.git] / src / parser / parser.nit
index 965e0fb..6a59312 100644 (file)
@@ -1,17 +1,17 @@
 # Parser.
-# This file was generated by SableCC (http://www.sablecc.org/). 
+# This file was generated by SableCC (http://www.sablecc.org/).
 package parser
 
-import parser_prod
+intrude import parser_prod
 intrude import parser_tables
 
 # State of the parser automata as stored in the parser stack.
 private class State
        # The internal state number
-       readable writable attr _state: Int
+       readable writable var _state: Int
 
        # The node stored with the state in the stack
-       readable writable attr _nodes: nullable Object 
+       readable writable var _nodes: nullable Object
 
        init(state: Int, nodes: nullable Object)
        do
@@ -23,13 +23,13 @@ end
 class Parser
 special ParserTable
        # Associated lexer
-       attr _lexer: Lexer
+       var _lexer: Lexer
 
        # Stack of pushed states and productions
-       attr _stack: Array[State]
+       var _stack: Array[State]
 
        # Position in the stack
-       attr _stack_pos: Int
+       var _stack_pos: Int
 
        # Create a new parser based on a given lexer
        init(lexer: Lexer)
@@ -43,7 +43,7 @@ special ParserTable
        end
 
        # Do a transition in the automata
-       private meth go_to(index: Int): Int
+       private fun go_to(index: Int): Int
        do
                var state = state
                var table = _goto_table[index]
@@ -67,7 +67,7 @@ special ParserTable
        end
 
        # Push someting in the state stack
-       private meth push(numstate: Int, list_node: nullable Object)
+       private fun push(numstate: Int, list_node: nullable Object)
        do
                var pos = _stack_pos + 1
                _stack_pos = pos
@@ -81,13 +81,13 @@ special ParserTable
        end
 
        # The current state
-       private meth state: Int
+       private fun state: Int
        do
                return _stack[_stack_pos].state
        end
 
        # Pop something from the stack state
-       private meth pop: nullable Object
+       private fun pop: nullable Object
        do
                var res = _stack[_stack_pos].nodes
                _stack_pos = _stack_pos -1
@@ -95,17 +95,17 @@ special ParserTable
        end
 
        # Build and return a full AST.
-       meth parse: Start
+       fun parse: Start
        do
                push(0, null)
 
                var lexer = _lexer
                while true do
                        var token = lexer.peek
-                       var last_pos = token.pos
-                       var last_line = token.line
+                       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,12 +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).visit(node)
+                               (new SearchTokensVisitor).enter_visit(node)
                                return node
                        else if action_type == 3 then # ERROR
-                               var node2 = new PError.init_error(lexer.filename, last_line, last_pos, error_messages[errors[action_value]])
+                               var location = new Location(lexer.filename, last_line, last_line, last_pos, last_pos)
+                               var node2 = new AError.init_error(error_messages[errors[action_value]],location)
                                var node = new Start(null, node2)
                                return node
                        end
@@ -153,8 +154,8 @@ special ParserTable
                abort
        end
 
-       attr _reduce_table: Array[ReduceAction]
-       private meth build_reduce_table
+       var _reduce_table: Array[ReduceAction]
+       private fun build_reduce_table
        do
                _reduce_table = new Array[ReduceAction].with_items(
                        new ReduceAction0,
@@ -894,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
@@ -902,9 +992,9 @@ end
 # Find first and last tokens of production nodes
 private class SearchTokensVisitor
 special Visitor
-       attr _untokenned_nodes: Array[Prod]
-       attr _last_token: nullable Token = null
-       redef meth visit(n: nullable PNode)
+       var _untokenned_nodes: Array[Prod]
+       var _last_token: nullable Token = null
+       redef fun visit(n: nullable ANode)
        do
                if n == null then
                        return
@@ -919,6 +1009,20 @@ special Visitor
                        _untokenned_nodes.add(n)
                        n.visit_all(self)
                        n.last_token = _last_token
+
+                       if n.first_token != null then
+                               var start_location = n.first_token.location
+                               var end_location = _last_token.location
+
+                               if start_location != null and end_location != null then
+                                       var file = end_location.file
+                                       var line_start = start_location.line_start
+                                       var line_end = end_location.line_end
+                                       var column_start = start_location.column_start
+                                       var column_end = end_location.column_end
+                                       n.location = new Location(file, line_start, line_end, column_start, column_end)
+                               end
+                       end
                end
        end
        init
@@ -929,12 +1033,12 @@ end
 
 # Each reduca action has its own class, this one is the root of the hierarchy.
 private abstract class ReduceAction
-       meth action(p: Parser) is abstract
+       fun action(p: Parser) is abstract
 end
 
 private class ReduceAction0
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var listnode3 = new Array[Object]
@@ -951,14 +1055,14 @@ init do end
 end
 private class ReduceAction1
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        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,
@@ -971,7 +1075,7 @@ init do end
 end
 private class ReduceAction2
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -998,7 +1102,7 @@ init do end
 end
 private class ReduceAction3
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -1006,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
@@ -1028,7 +1132,7 @@ init do end
 end
 private class ReduceAction4
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -1055,7 +1159,7 @@ init do end
 end
 private class ReduceAction5
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -1063,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
@@ -1085,7 +1189,7 @@ init do end
 end
 private class ReduceAction6
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -1122,7 +1226,7 @@ init do end
 end
 private class ReduceAction7
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -1131,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
@@ -1162,7 +1266,7 @@ init do end
 end
 private class ReduceAction8
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -1171,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
@@ -1193,7 +1297,7 @@ init do end
 end
 private class ReduceAction9
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -1203,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
@@ -1234,7 +1338,7 @@ init do end
 end
 private class ReduceAction10
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -1243,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
@@ -1268,7 +1372,7 @@ init do end
 end
 private class ReduceAction11
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -1278,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
@@ -1312,7 +1416,7 @@ init do end
 end
 private class ReduceAction12
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -1331,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
@@ -1353,7 +1457,7 @@ init do end
 end
 private class ReduceAction13
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -1373,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
@@ -1404,7 +1508,7 @@ init do end
 end
 private class ReduceAction14
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -1414,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
@@ -1426,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
@@ -1448,7 +1552,7 @@ init do end
 end
 private class ReduceAction15
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -1459,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
@@ -1471,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
@@ -1502,7 +1606,7 @@ init do end
 end
 private class ReduceAction16
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -1514,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
@@ -1543,7 +1647,7 @@ init do end
 end
 private class ReduceAction17
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -1556,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
@@ -1594,7 +1698,7 @@ init do end
 end
 private class ReduceAction18
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -1604,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
@@ -1638,7 +1742,7 @@ init do end
 end
 private class ReduceAction19
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -1649,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
@@ -1692,7 +1796,7 @@ init do end
 end
 private class ReduceAction20
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -1714,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
@@ -1743,7 +1847,7 @@ init do end
 end
 private class ReduceAction21
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -1766,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
@@ -1804,7 +1908,7 @@ init do end
 end
 private class ReduceAction22
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -1815,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
@@ -1829,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
@@ -1858,7 +1962,7 @@ init do end
 end
 private class ReduceAction23
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -1870,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
@@ -1884,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
@@ -1922,14 +2026,14 @@ init do end
 end
 private class ReduceAction24
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        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
@@ -1945,7 +2049,7 @@ init do end
 end
 private class ReduceAction25
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -1953,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
@@ -1971,7 +2075,7 @@ init do end
 end
 private class ReduceAction26
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -1988,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
@@ -2004,7 +2108,7 @@ init do end
 end
 private class ReduceAction27
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -2013,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
@@ -2024,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
@@ -2040,7 +2144,7 @@ init do end
 end
 private class ReduceAction28
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -2050,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
@@ -2073,7 +2177,7 @@ init do end
 end
 private class ReduceAction29
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -2082,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
@@ -2109,7 +2213,7 @@ init do end
 end
 private class ReduceAction30
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -2129,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
@@ -2152,7 +2256,7 @@ init do end
 end
 private class ReduceAction31
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -2162,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
@@ -2175,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
@@ -2198,7 +2302,7 @@ init do end
 end
 private class ReduceAction32
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -2208,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
@@ -2216,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
@@ -2235,7 +2339,7 @@ init do end
 end
 private class ReduceAction33
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -2246,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
@@ -2263,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
@@ -2282,7 +2386,7 @@ init do end
 end
 private class ReduceAction34
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -2292,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
@@ -2303,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
@@ -2322,7 +2426,7 @@ init do end
 end
 private class ReduceAction35
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -2333,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
@@ -2353,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
@@ -2372,7 +2476,7 @@ init do end
 end
 private class ReduceAction36
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -2392,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
@@ -2400,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
@@ -2419,7 +2523,7 @@ init do end
 end
 private class ReduceAction37
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -2440,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
@@ -2457,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
@@ -2476,7 +2580,7 @@ init do end
 end
 private class ReduceAction38
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -2487,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
@@ -2499,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
@@ -2507,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
@@ -2526,7 +2630,7 @@ init do end
 end
 private class ReduceAction39
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -2538,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
@@ -2550,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
@@ -2567,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
@@ -2586,7 +2690,7 @@ init do end
 end
 private class ReduceAction40
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -2599,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
@@ -2607,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
@@ -2633,7 +2737,7 @@ init do end
 end
 private class ReduceAction41
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -2647,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
@@ -2664,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
@@ -2690,7 +2794,7 @@ init do end
 end
 private class ReduceAction42
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -2701,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
@@ -2714,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
@@ -2740,7 +2844,7 @@ init do end
 end
 private class ReduceAction43
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -2752,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
@@ -2774,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
@@ -2800,7 +2904,7 @@ init do end
 end
 private class ReduceAction44
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -2823,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
@@ -2831,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
@@ -2857,7 +2961,7 @@ init do end
 end
 private class ReduceAction45
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -2881,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
@@ -2898,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
@@ -2924,7 +3028,7 @@ init do end
 end
 private class ReduceAction46
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -2936,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
@@ -2950,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
@@ -2958,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
@@ -2984,7 +3088,7 @@ init do end
 end
 private class ReduceAction47
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -2997,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
@@ -3011,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
@@ -3028,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
@@ -3054,7 +3158,7 @@ init do end
 end
 private class ReduceAction48
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -3063,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
@@ -3080,7 +3184,7 @@ init do end
 end
 private class ReduceAction49
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -3090,12 +3194,12 @@ 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
                                        assert tidnode4 isa nullable TId
-                                       var pimportnode1: nullable AImport = new AImport.init_aimport(
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
                                                pvisibilitynode2,
                                                tkwimportnode3,
                                                tidnode4
@@ -3107,7 +3211,7 @@ init do end
 end
 private class ReduceAction50
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -3117,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
@@ -3134,13 +3238,13 @@ init do end
 end
 private class ReduceAction51
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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
@@ -3154,7 +3258,7 @@ init do end
 end
 private class ReduceAction52
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -3165,7 +3269,7 @@ init do end
 end
 private class ReduceAction53
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -3173,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
@@ -3191,7 +3295,7 @@ init do end
 end
 private class ReduceAction54
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -3200,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
@@ -3227,7 +3331,7 @@ init do end
 end
 private class ReduceAction55
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -3241,14 +3345,14 @@ 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 AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3265,7 +3369,7 @@ init do end
 end
 private class ReduceAction56
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -3280,16 +3384,16 @@ 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 AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -3306,7 +3410,7 @@ init do end
 end
 private class ReduceAction57
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -3321,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
@@ -3337,7 +3441,7 @@ special ReduceAction
                                                        listnode8.append(listnode7)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3354,7 +3458,7 @@ init do end
 end
 private class ReduceAction58
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -3370,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
@@ -3388,7 +3492,7 @@ special ReduceAction
                                                        listnode8.append(listnode7)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -3405,7 +3509,7 @@ init do end
 end
 private class ReduceAction59
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -3420,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
@@ -3436,7 +3540,7 @@ special ReduceAction
                                                        listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3453,7 +3557,7 @@ init do end
 end
 private class ReduceAction60
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -3469,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
@@ -3487,7 +3591,7 @@ special ReduceAction
                                                        listnode9.append(listnode8)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -3504,7 +3608,7 @@ init do end
 end
 private class ReduceAction61
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -3520,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
@@ -3545,7 +3649,7 @@ special ReduceAction
                                                        listnode10.append(listnode9)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3562,7 +3666,7 @@ init do end
 end
 private class ReduceAction62
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -3579,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
@@ -3606,7 +3710,7 @@ special ReduceAction
                                                        listnode10.append(listnode9)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -3623,7 +3727,7 @@ init do end
 end
 private class ReduceAction63
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -3639,19 +3743,19 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3668,7 +3772,7 @@ init do end
 end
 private class ReduceAction64
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -3685,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
@@ -3706,7 +3810,7 @@ special ReduceAction
                                                        listnode11.append(listnode10)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3723,7 +3827,7 @@ init do end
 end
 private class ReduceAction65
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -3740,21 +3844,21 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -3771,7 +3875,7 @@ init do end
 end
 private class ReduceAction66
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -3789,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
@@ -3812,7 +3916,7 @@ special ReduceAction
                                                        listnode11.append(listnode10)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -3829,7 +3933,7 @@ init do end
 end
 private class ReduceAction67
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -3846,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
@@ -3863,11 +3967,11 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3884,7 +3988,7 @@ init do end
 end
 private class ReduceAction68
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -3902,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
@@ -3919,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
@@ -3932,7 +4036,7 @@ special ReduceAction
                                                        listnode12.append(listnode11)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -3949,7 +4053,7 @@ init do end
 end
 private class ReduceAction69
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -3967,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
@@ -3986,11 +4090,11 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -4007,7 +4111,7 @@ init do end
 end
 private class ReduceAction70
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -4026,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
@@ -4045,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
@@ -4058,7 +4162,7 @@ special ReduceAction
                                                        listnode12.append(listnode11)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -4075,7 +4179,7 @@ init do end
 end
 private class ReduceAction71
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -4092,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
@@ -4109,11 +4213,11 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -4130,7 +4234,7 @@ init do end
 end
 private class ReduceAction72
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -4148,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
@@ -4165,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
@@ -4178,7 +4282,7 @@ special ReduceAction
                                                        listnode12.append(listnode11)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -4195,7 +4299,7 @@ init do end
 end
 private class ReduceAction73
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -4213,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
@@ -4232,11 +4336,11 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -4253,7 +4357,7 @@ init do end
 end
 private class ReduceAction74
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -4272,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
@@ -4291,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
@@ -4304,7 +4408,7 @@ special ReduceAction
                                                        listnode12.append(listnode11)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -4321,7 +4425,7 @@ init do end
 end
 private class ReduceAction75
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -4339,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
@@ -4365,11 +4469,11 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -4386,7 +4490,7 @@ init do end
 end
 private class ReduceAction76
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -4405,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
@@ -4431,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
@@ -4444,7 +4548,7 @@ special ReduceAction
                                                        listnode13.append(listnode12)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
@@ -4461,7 +4565,7 @@ init do end
 end
 private class ReduceAction77
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -4480,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
@@ -4508,11 +4612,11 @@ 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
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -4529,7 +4633,7 @@ init do end
 end
 private class ReduceAction78
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist13 = p.pop
@@ -4549,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
@@ -4577,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
@@ -4590,7 +4694,7 @@ special ReduceAction
                                                        listnode13.append(listnode12)
                                                end
 #                                      end
-                                       var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef(
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
@@ -4607,7 +4711,7 @@ init do end
 end
 private class ReduceAction79
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -4623,7 +4727,7 @@ init do end
 end
 private class ReduceAction80
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -4643,7 +4747,7 @@ init do end
 end
 private class ReduceAction81
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -4659,7 +4763,7 @@ init do end
 end
 private class ReduceAction82
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -4675,7 +4779,7 @@ init do end
 end
 private class ReduceAction83
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -4685,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
@@ -4696,7 +4800,7 @@ init do end
 end
 private class ReduceAction84
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -4707,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
@@ -4727,14 +4831,14 @@ init do end
 end
 private class ReduceAction85
 special ReduceAction
-       redef meth action(p: Parser)
+       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 pformaldefnode1 = nodearraylist3
-                                       assert pformaldefnode1 isa nullable PFormaldef
+                                       assert pformaldefnode1 isa nullable AFormaldef
                                        node_list = pformaldefnode1
                                        p.push(p.go_to(8), node_list)
        end
@@ -4742,7 +4846,7 @@ init do end
 end
 private class ReduceAction86
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -4759,7 +4863,7 @@ init do end
 end
 private class ReduceAction87
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -4767,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
@@ -4779,7 +4883,7 @@ init do end
 end
 private class ReduceAction88
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -4789,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
@@ -4801,13 +4905,13 @@ init do end
 end
 private class ReduceAction89
 special ReduceAction
-       redef meth action(p: Parser)
+       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
+                                       assert ppropdefnode1 isa nullable APropdef
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(11), node_list)
        end
@@ -4815,7 +4919,7 @@ init do end
 end
 private class ReduceAction90
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -4826,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,
@@ -4853,7 +4957,7 @@ init do end
 end
 private class ReduceAction91
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -4865,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,
@@ -4894,7 +4998,7 @@ init do end
 end
 private class ReduceAction92
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -4906,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,
@@ -4933,7 +5037,7 @@ init do end
 end
 private class ReduceAction93
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -4946,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,
@@ -4975,7 +5079,7 @@ init do end
 end
 private class ReduceAction94
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -4986,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,
@@ -5010,7 +5114,7 @@ init do end
 end
 private class ReduceAction95
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -5022,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,
@@ -5048,7 +5152,7 @@ init do end
 end
 private class ReduceAction96
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -5059,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,
@@ -5083,7 +5187,7 @@ init do end
 end
 private class ReduceAction97
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -5095,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,
@@ -5121,7 +5225,7 @@ init do end
 end
 private class ReduceAction98
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -5132,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,
@@ -5157,7 +5261,7 @@ init do end
 end
 private class ReduceAction99
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -5169,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,
@@ -5196,7 +5300,7 @@ init do end
 end
 private class ReduceAction100
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -5208,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(
@@ -5235,7 +5339,7 @@ init do end
 end
 private class ReduceAction101
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -5248,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(
@@ -5277,7 +5381,7 @@ init do end
 end
 private class ReduceAction102
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -5287,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(
@@ -5301,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
@@ -5325,7 +5429,7 @@ init do end
 end
 private class ReduceAction103
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -5336,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(
@@ -5352,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
@@ -5376,7 +5480,7 @@ init do end
 end
 private class ReduceAction104
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -5385,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(
@@ -5393,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
@@ -5417,7 +5521,7 @@ init do end
 end
 private class ReduceAction105
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -5428,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
@@ -5444,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
@@ -5468,7 +5572,7 @@ init do end
 end
 private class ReduceAction106
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -5480,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
@@ -5498,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
@@ -5522,7 +5626,7 @@ init do end
 end
 private class ReduceAction107
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -5532,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
@@ -5542,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
@@ -5566,7 +5670,7 @@ init do end
 end
 private class ReduceAction108
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -5575,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(
@@ -5583,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
@@ -5607,7 +5711,7 @@ init do end
 end
 private class ReduceAction109
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -5617,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
@@ -5627,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
@@ -5651,7 +5755,7 @@ init do end
 end
 private class ReduceAction110
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -5659,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
@@ -5685,7 +5789,7 @@ init do end
 end
 private class ReduceAction111
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -5696,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(
@@ -5712,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
@@ -5736,7 +5840,7 @@ init do end
 end
 private class ReduceAction112
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -5748,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(
@@ -5766,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
@@ -5790,7 +5894,7 @@ init do end
 end
 private class ReduceAction113
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -5800,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(
@@ -5810,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
@@ -5834,7 +5938,7 @@ init do end
 end
 private class ReduceAction114
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -5846,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
@@ -5864,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
@@ -5888,7 +5992,7 @@ init do end
 end
 private class ReduceAction115
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -5901,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
@@ -5921,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
@@ -5945,7 +6049,7 @@ init do end
 end
 private class ReduceAction116
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -5956,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
@@ -5968,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
@@ -5992,7 +6096,7 @@ init do end
 end
 private class ReduceAction117
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -6002,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(
@@ -6012,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
@@ -6036,7 +6140,7 @@ init do end
 end
 private class ReduceAction118
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -6047,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
@@ -6059,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
@@ -6083,7 +6187,7 @@ init do end
 end
 private class ReduceAction119
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -6092,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
@@ -6120,7 +6224,7 @@ init do end
 end
 private class ReduceAction120
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -6131,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(
@@ -6145,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,
@@ -6171,7 +6275,7 @@ init do end
 end
 private class ReduceAction121
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -6183,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(
@@ -6199,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,
@@ -6225,7 +6329,7 @@ init do end
 end
 private class ReduceAction122
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -6235,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(
@@ -6243,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,
@@ -6269,7 +6373,7 @@ init do end
 end
 private class ReduceAction123
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -6281,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
@@ -6297,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,
@@ -6323,7 +6427,7 @@ init do end
 end
 private class ReduceAction124
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -6336,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
@@ -6354,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,
@@ -6380,7 +6484,7 @@ init do end
 end
 private class ReduceAction125
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -6391,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
@@ -6401,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,
@@ -6427,7 +6531,7 @@ init do end
 end
 private class ReduceAction126
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -6437,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(
@@ -6445,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,
@@ -6471,7 +6575,7 @@ init do end
 end
 private class ReduceAction127
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -6482,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
@@ -6492,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,
@@ -6518,7 +6622,7 @@ init do end
 end
 private class ReduceAction128
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -6527,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,
@@ -6555,7 +6659,7 @@ init do end
 end
 private class ReduceAction129
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -6567,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(
@@ -6583,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,
@@ -6609,7 +6713,7 @@ init do end
 end
 private class ReduceAction130
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -6622,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(
@@ -6640,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,
@@ -6666,7 +6770,7 @@ init do end
 end
 private class ReduceAction131
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -6677,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(
@@ -6687,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,
@@ -6713,7 +6817,7 @@ init do end
 end
 private class ReduceAction132
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -6726,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
@@ -6744,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,
@@ -6770,7 +6874,7 @@ init do end
 end
 private class ReduceAction133
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -6784,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
@@ -6804,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,
@@ -6830,7 +6934,7 @@ init do end
 end
 private class ReduceAction134
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -6842,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
@@ -6854,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,
@@ -6880,7 +6984,7 @@ init do end
 end
 private class ReduceAction135
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -6891,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(
@@ -6901,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,
@@ -6927,7 +7031,7 @@ init do end
 end
 private class ReduceAction136
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -6939,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
@@ -6951,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,
@@ -6977,7 +7081,7 @@ init do end
 end
 private class ReduceAction137
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -6987,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,
@@ -7017,7 +7121,7 @@ init do end
 end
 private class ReduceAction138
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -7030,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(
@@ -7044,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,
@@ -7070,7 +7174,7 @@ init do end
 end
 private class ReduceAction139
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -7084,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(
@@ -7100,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,
@@ -7126,7 +7230,7 @@ init do end
 end
 private class ReduceAction140
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -7138,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(
@@ -7146,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,
@@ -7172,7 +7276,7 @@ init do end
 end
 private class ReduceAction141
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -7186,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
@@ -7202,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,
@@ -7228,7 +7332,7 @@ init do end
 end
 private class ReduceAction142
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -7243,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
@@ -7261,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,
@@ -7287,7 +7391,7 @@ init do end
 end
 private class ReduceAction143
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -7300,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
@@ -7310,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,
@@ -7336,7 +7440,7 @@ init do end
 end
 private class ReduceAction144
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -7348,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(
@@ -7356,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,
@@ -7382,7 +7486,7 @@ init do end
 end
 private class ReduceAction145
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -7395,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
@@ -7405,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,
@@ -7431,7 +7535,7 @@ init do end
 end
 private class ReduceAction146
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -7442,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,
@@ -7470,7 +7574,7 @@ init do end
 end
 private class ReduceAction147
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -7484,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(
@@ -7500,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,
@@ -7526,7 +7630,7 @@ init do end
 end
 private class ReduceAction148
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -7541,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(
@@ -7559,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,
@@ -7585,7 +7689,7 @@ init do end
 end
 private class ReduceAction149
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -7598,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(
@@ -7608,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,
@@ -7634,7 +7738,7 @@ init do end
 end
 private class ReduceAction150
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -7649,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
@@ -7667,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,
@@ -7693,7 +7797,7 @@ init do end
 end
 private class ReduceAction151
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -7709,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
@@ -7729,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,
@@ -7755,7 +7859,7 @@ init do end
 end
 private class ReduceAction152
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -7769,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
@@ -7781,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,
@@ -7807,7 +7911,7 @@ init do end
 end
 private class ReduceAction153
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -7820,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(
@@ -7830,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,
@@ -7856,7 +7960,7 @@ init do end
 end
 private class ReduceAction154
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -7870,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
@@ -7882,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,
@@ -7908,7 +8012,7 @@ init do end
 end
 private class ReduceAction155
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -7920,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,
@@ -7950,7 +8054,7 @@ init do end
 end
 private class ReduceAction156
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -7964,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(
@@ -7978,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,
@@ -8006,7 +8110,7 @@ init do end
 end
 private class ReduceAction157
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -8021,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(
@@ -8037,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,
@@ -8065,7 +8169,7 @@ init do end
 end
 private class ReduceAction158
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -8078,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(
@@ -8086,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,
@@ -8114,7 +8218,7 @@ init do end
 end
 private class ReduceAction159
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -8129,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
@@ -8145,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,
@@ -8173,7 +8277,7 @@ init do end
 end
 private class ReduceAction160
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -8189,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
@@ -8207,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,
@@ -8235,7 +8339,7 @@ init do end
 end
 private class ReduceAction161
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -8249,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
@@ -8259,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,
@@ -8287,7 +8391,7 @@ init do end
 end
 private class ReduceAction162
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -8300,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(
@@ -8308,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,
@@ -8336,7 +8440,7 @@ init do end
 end
 private class ReduceAction163
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -8350,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
@@ -8360,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,
@@ -8388,7 +8492,7 @@ init do end
 end
 private class ReduceAction164
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -8400,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,
@@ -8430,7 +8534,7 @@ init do end
 end
 private class ReduceAction165
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -8445,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(
@@ -8461,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,
@@ -8489,7 +8593,7 @@ init do end
 end
 private class ReduceAction166
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -8505,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(
@@ -8523,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,
@@ -8551,7 +8655,7 @@ init do end
 end
 private class ReduceAction167
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -8565,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(
@@ -8575,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,
@@ -8603,7 +8707,7 @@ init do end
 end
 private class ReduceAction168
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -8619,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
@@ -8637,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,
@@ -8665,7 +8769,7 @@ init do end
 end
 private class ReduceAction169
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist13 = p.pop
@@ -8682,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
@@ -8702,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,
@@ -8730,7 +8834,7 @@ init do end
 end
 private class ReduceAction170
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -8745,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
@@ -8757,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,
@@ -8785,7 +8889,7 @@ init do end
 end
 private class ReduceAction171
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -8799,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(
@@ -8809,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,
@@ -8837,7 +8941,7 @@ init do end
 end
 private class ReduceAction172
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -8852,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
@@ -8864,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,
@@ -8892,7 +8996,7 @@ init do end
 end
 private class ReduceAction173
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -8905,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,
@@ -8937,7 +9041,7 @@ init do end
 end
 private class ReduceAction174
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -8947,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(
@@ -8961,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
@@ -8985,7 +9089,7 @@ init do end
 end
 private class ReduceAction175
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -8996,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(
@@ -9012,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
@@ -9036,7 +9140,7 @@ init do end
 end
 private class ReduceAction176
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -9045,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(
@@ -9053,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
@@ -9077,7 +9181,7 @@ init do end
 end
 private class ReduceAction177
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -9088,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
@@ -9104,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
@@ -9128,7 +9232,7 @@ init do end
 end
 private class ReduceAction178
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -9140,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
@@ -9158,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
@@ -9182,7 +9286,7 @@ init do end
 end
 private class ReduceAction179
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -9192,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
@@ -9202,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
@@ -9226,7 +9330,7 @@ init do end
 end
 private class ReduceAction180
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -9235,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(
@@ -9243,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
@@ -9267,7 +9371,7 @@ init do end
 end
 private class ReduceAction181
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -9277,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
@@ -9287,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
@@ -9311,7 +9415,7 @@ init do end
 end
 private class ReduceAction182
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -9319,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
@@ -9345,7 +9449,7 @@ init do end
 end
 private class ReduceAction183
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -9356,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(
@@ -9372,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
@@ -9396,7 +9500,7 @@ init do end
 end
 private class ReduceAction184
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -9408,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(
@@ -9426,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
@@ -9450,7 +9554,7 @@ init do end
 end
 private class ReduceAction185
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -9460,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(
@@ -9470,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
@@ -9494,7 +9598,7 @@ init do end
 end
 private class ReduceAction186
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -9506,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
@@ -9524,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
@@ -9548,7 +9652,7 @@ init do end
 end
 private class ReduceAction187
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -9561,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
@@ -9581,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
@@ -9605,7 +9709,7 @@ init do end
 end
 private class ReduceAction188
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -9616,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
@@ -9628,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
@@ -9652,7 +9756,7 @@ init do end
 end
 private class ReduceAction189
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -9662,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(
@@ -9672,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
@@ -9696,7 +9800,7 @@ init do end
 end
 private class ReduceAction190
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -9707,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
@@ -9719,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
@@ -9743,7 +9847,7 @@ init do end
 end
 private class ReduceAction191
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -9752,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
@@ -9780,7 +9884,7 @@ init do end
 end
 private class ReduceAction192
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -9791,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(
@@ -9805,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,
@@ -9831,7 +9935,7 @@ init do end
 end
 private class ReduceAction193
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -9843,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(
@@ -9859,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,
@@ -9885,7 +9989,7 @@ init do end
 end
 private class ReduceAction194
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -9895,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(
@@ -9903,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,
@@ -9929,7 +10033,7 @@ init do end
 end
 private class ReduceAction195
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -9941,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
@@ -9957,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,
@@ -9983,7 +10087,7 @@ init do end
 end
 private class ReduceAction196
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -9996,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
@@ -10014,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,
@@ -10040,7 +10144,7 @@ init do end
 end
 private class ReduceAction197
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -10051,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
@@ -10061,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,
@@ -10087,7 +10191,7 @@ init do end
 end
 private class ReduceAction198
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -10097,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(
@@ -10105,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,
@@ -10131,7 +10235,7 @@ init do end
 end
 private class ReduceAction199
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -10142,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
@@ -10152,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,
@@ -10178,7 +10282,7 @@ init do end
 end
 private class ReduceAction200
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -10187,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,
@@ -10215,7 +10319,7 @@ init do end
 end
 private class ReduceAction201
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -10227,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(
@@ -10243,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,
@@ -10269,7 +10373,7 @@ init do end
 end
 private class ReduceAction202
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -10282,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(
@@ -10300,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,
@@ -10326,7 +10430,7 @@ init do end
 end
 private class ReduceAction203
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -10337,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(
@@ -10347,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,
@@ -10373,7 +10477,7 @@ init do end
 end
 private class ReduceAction204
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -10386,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
@@ -10404,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,
@@ -10430,7 +10534,7 @@ init do end
 end
 private class ReduceAction205
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -10444,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
@@ -10464,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,
@@ -10490,7 +10594,7 @@ init do end
 end
 private class ReduceAction206
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -10502,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
@@ -10514,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,
@@ -10540,7 +10644,7 @@ init do end
 end
 private class ReduceAction207
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -10551,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(
@@ -10561,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,
@@ -10587,7 +10691,7 @@ init do end
 end
 private class ReduceAction208
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -10599,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
@@ -10611,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,
@@ -10637,7 +10741,7 @@ init do end
 end
 private class ReduceAction209
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -10647,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,
@@ -10677,7 +10781,7 @@ init do end
 end
 private class ReduceAction210
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -10690,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(
@@ -10704,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,
@@ -10730,7 +10834,7 @@ init do end
 end
 private class ReduceAction211
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -10744,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(
@@ -10760,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,
@@ -10786,7 +10890,7 @@ init do end
 end
 private class ReduceAction212
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -10798,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(
@@ -10806,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,
@@ -10832,7 +10936,7 @@ init do end
 end
 private class ReduceAction213
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -10846,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
@@ -10862,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,
@@ -10888,7 +10992,7 @@ init do end
 end
 private class ReduceAction214
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -10903,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
@@ -10921,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,
@@ -10947,7 +11051,7 @@ init do end
 end
 private class ReduceAction215
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -10960,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
@@ -10970,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,
@@ -10996,7 +11100,7 @@ init do end
 end
 private class ReduceAction216
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -11008,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(
@@ -11016,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,
@@ -11042,7 +11146,7 @@ init do end
 end
 private class ReduceAction217
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -11055,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
@@ -11065,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,
@@ -11091,7 +11195,7 @@ init do end
 end
 private class ReduceAction218
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -11102,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,
@@ -11130,7 +11234,7 @@ init do end
 end
 private class ReduceAction219
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -11144,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(
@@ -11160,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,
@@ -11186,7 +11290,7 @@ init do end
 end
 private class ReduceAction220
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -11201,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(
@@ -11219,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,
@@ -11245,7 +11349,7 @@ init do end
 end
 private class ReduceAction221
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -11258,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(
@@ -11268,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,
@@ -11294,7 +11398,7 @@ init do end
 end
 private class ReduceAction222
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -11309,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
@@ -11327,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,
@@ -11353,7 +11457,7 @@ init do end
 end
 private class ReduceAction223
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -11369,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
@@ -11389,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,
@@ -11415,7 +11519,7 @@ init do end
 end
 private class ReduceAction224
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -11429,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
@@ -11441,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,
@@ -11467,7 +11571,7 @@ init do end
 end
 private class ReduceAction225
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -11480,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(
@@ -11490,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,
@@ -11516,7 +11620,7 @@ init do end
 end
 private class ReduceAction226
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -11530,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
@@ -11542,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,
@@ -11568,7 +11672,7 @@ init do end
 end
 private class ReduceAction227
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -11580,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,
@@ -11610,7 +11714,7 @@ init do end
 end
 private class ReduceAction228
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -11624,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(
@@ -11638,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,
@@ -11666,7 +11770,7 @@ init do end
 end
 private class ReduceAction229
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -11681,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(
@@ -11697,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,
@@ -11725,7 +11829,7 @@ init do end
 end
 private class ReduceAction230
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -11738,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(
@@ -11746,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,
@@ -11774,7 +11878,7 @@ init do end
 end
 private class ReduceAction231
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -11789,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
@@ -11805,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,
@@ -11833,7 +11937,7 @@ init do end
 end
 private class ReduceAction232
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -11849,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
@@ -11867,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,
@@ -11895,7 +11999,7 @@ init do end
 end
 private class ReduceAction233
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -11909,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
@@ -11919,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,
@@ -11947,7 +12051,7 @@ init do end
 end
 private class ReduceAction234
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -11960,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(
@@ -11968,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,
@@ -11996,7 +12100,7 @@ init do end
 end
 private class ReduceAction235
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -12010,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
@@ -12020,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,
@@ -12048,7 +12152,7 @@ init do end
 end
 private class ReduceAction236
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -12060,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,
@@ -12090,7 +12194,7 @@ init do end
 end
 private class ReduceAction237
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -12105,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(
@@ -12121,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,
@@ -12149,7 +12253,7 @@ init do end
 end
 private class ReduceAction238
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -12165,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(
@@ -12183,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,
@@ -12211,7 +12315,7 @@ init do end
 end
 private class ReduceAction239
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -12225,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(
@@ -12235,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,
@@ -12263,7 +12367,7 @@ init do end
 end
 private class ReduceAction240
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -12279,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
@@ -12297,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,
@@ -12325,7 +12429,7 @@ init do end
 end
 private class ReduceAction241
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist13 = p.pop
@@ -12342,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
@@ -12362,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,
@@ -12390,7 +12494,7 @@ init do end
 end
 private class ReduceAction242
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -12405,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
@@ -12417,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,
@@ -12445,7 +12549,7 @@ init do end
 end
 private class ReduceAction243
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -12459,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(
@@ -12469,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,
@@ -12497,7 +12601,7 @@ init do end
 end
 private class ReduceAction244
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -12512,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
@@ -12524,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,
@@ -12552,7 +12656,7 @@ init do end
 end
 private class ReduceAction245
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -12565,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,
@@ -12597,7 +12701,7 @@ init do end
 end
 private class ReduceAction246
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -12607,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,
@@ -12632,7 +12736,7 @@ init do end
 end
 private class ReduceAction247
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -12643,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,
@@ -12670,7 +12774,7 @@ init do end
 end
 private class ReduceAction248
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -12681,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,
@@ -12708,7 +12812,7 @@ init do end
 end
 private class ReduceAction249
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -12720,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,
@@ -12749,7 +12853,7 @@ init do end
 end
 private class ReduceAction250
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -12760,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,
@@ -12785,7 +12889,7 @@ init do end
 end
 private class ReduceAction251
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -12797,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,
@@ -12824,7 +12928,7 @@ init do end
 end
 private class ReduceAction252
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -12836,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,
@@ -12863,7 +12967,7 @@ init do end
 end
 private class ReduceAction253
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist9 = p.pop
@@ -12876,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,
@@ -12905,7 +13009,7 @@ init do end
 end
 private class ReduceAction254
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -12914,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,
@@ -12938,7 +13042,7 @@ init do end
 end
 private class ReduceAction255
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -12948,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,
@@ -12974,7 +13078,7 @@ init do end
 end
 private class ReduceAction256
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
@@ -12986,7 +13090,7 @@ init do end
 end
 private class ReduceAction257
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13003,7 +13107,7 @@ init do end
 end
 private class ReduceAction258
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13020,7 +13124,7 @@ init do end
 end
 private class ReduceAction259
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13037,7 +13141,7 @@ init do end
 end
 private class ReduceAction260
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13053,7 +13157,7 @@ init do end
 end
 private class ReduceAction261
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13069,7 +13173,7 @@ init do end
 end
 private class ReduceAction262
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13085,7 +13189,7 @@ init do end
 end
 private class ReduceAction263
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13101,7 +13205,7 @@ init do end
 end
 private class ReduceAction264
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13117,7 +13221,7 @@ init do end
 end
 private class ReduceAction265
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13133,7 +13237,7 @@ init do end
 end
 private class ReduceAction266
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13149,7 +13253,7 @@ init do end
 end
 private class ReduceAction267
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13165,7 +13269,7 @@ init do end
 end
 private class ReduceAction268
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13181,7 +13285,7 @@ init do end
 end
 private class ReduceAction269
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13197,7 +13301,7 @@ init do end
 end
 private class ReduceAction270
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13213,7 +13317,7 @@ init do end
 end
 private class ReduceAction271
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13229,7 +13333,7 @@ init do end
 end
 private class ReduceAction272
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13249,7 +13353,7 @@ init do end
 end
 private class ReduceAction273
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13265,7 +13369,7 @@ init do end
 end
 private class ReduceAction274
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13285,7 +13389,7 @@ init do end
 end
 private class ReduceAction275
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -13309,7 +13413,7 @@ init do end
 end
 private class ReduceAction276
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13336,7 +13440,7 @@ init do end
 end
 private class ReduceAction277
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13373,7 +13477,7 @@ init do end
 end
 private class ReduceAction278
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13381,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
@@ -13403,7 +13507,7 @@ init do end
 end
 private class ReduceAction279
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -13421,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
@@ -13443,7 +13547,7 @@ init do end
 end
 private class ReduceAction280
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13461,7 +13565,7 @@ init do end
 end
 private class ReduceAction281
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13489,7 +13593,7 @@ init do end
 end
 private class ReduceAction282
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13497,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,
@@ -13510,7 +13614,7 @@ init do end
 end
 private class ReduceAction283
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -13528,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,
@@ -13541,7 +13645,7 @@ init do end
 end
 private class ReduceAction284
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var listnode2 = new Array[Object]
@@ -13558,7 +13662,7 @@ init do end
 end
 private class ReduceAction285
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13585,14 +13689,14 @@ init do end
 end
 private class ReduceAction286
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        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,
@@ -13605,7 +13709,7 @@ init do end
 end
 private class ReduceAction287
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13622,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,
@@ -13635,7 +13739,7 @@ init do end
 end
 private class ReduceAction288
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -13645,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
@@ -13656,7 +13760,7 @@ init do end
 end
 private class ReduceAction289
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -13667,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
@@ -13687,7 +13791,7 @@ init do end
 end
 private class ReduceAction290
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -13701,14 +13805,14 @@ init do end
 end
 private class ReduceAction291
 special ReduceAction
-       redef meth action(p: Parser)
+       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 pparamnode1 = nodearraylist3
-                                       assert pparamnode1 isa nullable PParam
+                                       assert pparamnode1 isa nullable AParam
                                        node_list = pparamnode1
                                        p.push(p.go_to(18), node_list)
        end
@@ -13716,7 +13820,7 @@ init do end
 end
 private class ReduceAction292
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13734,7 +13838,7 @@ init do end
 end
 private class ReduceAction293
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13742,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,
@@ -13755,7 +13859,7 @@ init do end
 end
 private class ReduceAction294
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -13764,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(
@@ -13779,7 +13883,7 @@ init do end
 end
 private class ReduceAction295
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13801,7 +13905,7 @@ init do end
 end
 private class ReduceAction296
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -13814,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,
@@ -13829,7 +13933,7 @@ init do end
 end
 private class ReduceAction297
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -13845,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,
@@ -13860,7 +13964,7 @@ init do end
 end
 private class ReduceAction298
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -13875,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,
@@ -13892,7 +13996,7 @@ init do end
 end
 private class ReduceAction299
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist8 = p.pop
@@ -13910,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,
@@ -13927,7 +14031,7 @@ init do end
 end
 private class ReduceAction300
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -13946,7 +14050,7 @@ init do end
 end
 private class ReduceAction301
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -13968,7 +14072,7 @@ init do end
 end
 private class ReduceAction302
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -14001,7 +14105,7 @@ init do end
 end
 private class ReduceAction303
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -14037,13 +14141,13 @@ init do end
 end
 private class ReduceAction304
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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
@@ -14054,14 +14158,14 @@ init do end
 end
 private class ReduceAction305
 special ReduceAction
-       redef meth action(p: Parser)
+       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 ptypenode1 = nodearraylist1
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
                                        if ptypenode1 != null then
@@ -14081,14 +14185,14 @@ init do end
 end
 private class ReduceAction306
 special ReduceAction
-       redef meth action(p: Parser)
+       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 ptypenode1 = nodearraylist3
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        node_list = ptypenode1
                                        p.push(p.go_to(24), node_list)
        end
@@ -14096,14 +14200,14 @@ init do end
 end
 private class ReduceAction307
 special ReduceAction
-       redef meth action(p: Parser)
+       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 ptypenode1 = nodearraylist3
-                                       assert ptypenode1 isa nullable PType
+                                       assert ptypenode1 isa nullable AType
                                        node_list = ptypenode1
                                        p.push(p.go_to(25), node_list)
        end
@@ -14111,20 +14215,7 @@ init do end
 end
 private class ReduceAction308
 special ReduceAction
-       redef meth 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -14133,7 +14224,7 @@ special ReduceAction
                                        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
@@ -14145,9 +14236,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction310
+private class ReduceAction309
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -14157,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
@@ -14178,9 +14269,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction311
+private class ReduceAction310
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -14194,9 +14285,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction312
+private class ReduceAction311
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -14209,15 +14300,28 @@ 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 meth action(p: Parser)
+       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
+                                       assert pexprnode1 isa nullable AExpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(27), node_list)
        end
@@ -14225,12 +14329,12 @@ init do end
 end
 private class ReduceAction314
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -14238,12 +14342,12 @@ init do end
 end
 private class ReduceAction315
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -14251,7 +14355,7 @@ init do end
 end
 private class ReduceAction316
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -14268,7 +14372,7 @@ init do end
 end
 private class ReduceAction317
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -14276,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
@@ -14288,7 +14392,7 @@ init do end
 end
 private class ReduceAction318
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -14296,6 +14400,7 @@ special ReduceAction
                                        assert tkwbreaknode2 isa nullable TKwbreak
                                        var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
                                                tkwbreaknode2,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
@@ -14305,18 +14410,19 @@ init do end
 end
 private class ReduceAction319
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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)
@@ -14325,7 +14431,52 @@ init do end
 end
 private class ReduceAction320
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -14339,9 +14490,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction321
+private class ReduceAction323
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -14349,6 +14500,7 @@ special ReduceAction
                                        assert tkwcontinuenode2 isa nullable TKwcontinue
                                        var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
                                                tkwcontinuenode2,
+                                               null,
                                                null
                                        )
                                        node_list = pexprnode1
@@ -14356,94 +14508,140 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction322
+private class ReduceAction324
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -14454,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
@@ -14477,9 +14675,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction329
+private class ReduceAction333
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -14510,9 +14708,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction330
+private class ReduceAction334
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -14524,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
@@ -14556,9 +14754,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction331
+private class ReduceAction335
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -14599,9 +14797,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction332
+private class ReduceAction336
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -14628,9 +14826,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction333
+private class ReduceAction337
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -14638,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
@@ -14660,9 +14858,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction334
+private class ReduceAction338
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -14672,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
@@ -14694,9 +14892,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction335
+private class ReduceAction339
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -14725,33 +14923,53 @@ 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 meth action(p: Parser)
+       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 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 meth action(p: Parser)
+       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
+                                       assert pclosuredefnode1 isa nullable AClosureDef
                                        var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
                                        if pclosuredefnode1 != null then
@@ -14765,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 meth 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 meth 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 meth action(p: Parser)
+       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
@@ -14848,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
@@ -14859,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 meth action(p: Parser)
+       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
@@ -14884,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
@@ -14904,43 +15063,104 @@ 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 meth action(p: Parser)
+       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
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var listnode8 = new Array[Object]
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable PExpr
-                                       if pexprnode7 != null then
-                                               listnode8.add(pexprnode7)
+                                       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 AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
                                        end
                                        var pexprnode6: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
                                                listnode8
@@ -14949,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 meth action(p: Parser)
+       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
@@ -14984,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
@@ -15004,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 meth action(p: Parser)
+       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
@@ -15035,9 +15274,9 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction345
+private class ReduceAction350
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -15058,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
@@ -15069,58 +15313,99 @@ special ReduceAction
        end
 init do end
 end
-private class ReduceAction346
+private class ReduceAction351
 special ReduceAction
-       redef meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -15128,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 meth action(p: Parser)
+       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)
+                                       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(31), node_list)
        end
 init do end
 end
-private class ReduceAction350
+private class ReduceAction355
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(33), node_list)
-       end
-init do end
-end
-private class ReduceAction351
-special ReduceAction
-       redef meth 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 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 meth action(p: Parser)
+       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
@@ -15250,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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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
@@ -15340,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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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
@@ -15514,226 +15832,227 @@ 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 meth action(p: Parser)
+       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 meth 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -15742,221 +16061,265 @@ 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 meth action(p: Parser)
+       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)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction369
+private class ReduceAction372
 special ReduceAction
-       redef meth action(p: Parser)
+       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 PExpr
+                                       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(37), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction370
+private class ReduceAction373
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       node_list = null
-                                       p.push(p.go_to(37), node_list)
+                                       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(34), node_list)
        end
 init do end
 end
-private class ReduceAction371
+private class ReduceAction374
 special ReduceAction
-       redef meth action(p: Parser)
+       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,
-                                               pexprnode5
+                                       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(38), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction372
+private class ReduceAction375
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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,
-                                               tidnode3,
-                                               pexprnode4,
-                                               tkwdonode5,
+                                       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(39), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction373
+private class ReduceAction376
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 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(40), node_list)
+                                       p.push(p.go_to(34), node_list)
        end
 init do end
 end
-private class ReduceAction374
+private class ReduceAction377
 special ReduceAction
-       redef meth action(p: Parser)
+       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 PExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4
+                                       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(40), node_list)
-       end
-init do end
-end
-private class ReduceAction375
-special ReduceAction
-       redef meth 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(41), node_list)
-       end
-init do end
-end
-private class ReduceAction376
-special ReduceAction
-       redef meth 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(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 meth action(p: Parser)
+       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
@@ -15964,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
@@ -15978,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 meth action(p: Parser)
+       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
@@ -16021,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 meth action(p: Parser)
+       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
@@ -16062,854 +16416,1430 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth 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
 private class ReduceAction386
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction387
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction388
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction389
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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
 private class ReduceAction390
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction391
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction392
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction393
 special ReduceAction
-       redef meth action(p: Parser)
+       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 meth action(p: Parser)
+       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
 private class ReduceAction395
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction396
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction397
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction398
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction399
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction400
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction401
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction402
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction403
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction404
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction405
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction406
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction407
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction408
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction409
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction410
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction411
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction412
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction413
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction414
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction415
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction416
 special ReduceAction
-       redef meth action(p: Parser)
+       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
 private class ReduceAction417
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -16919,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 meth action(p: Parser)
+       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
@@ -16950,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 meth action(p: Parser)
+       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
@@ -16980,36 +17933,7 @@ special ReduceAction
                                                        listnode4.append(listnode3)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(51), node_list)
-       end
-init do end
-end
-private class ReduceAction420
-special ReduceAction
-       redef meth 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
+                                       var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
 #                                      if listnode5 != null then
                                                if listnode6.is_empty then
@@ -17018,49 +17942,36 @@ special ReduceAction
                                                        listnode6.append(listnode5)
                                                end
 #                                      end
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
+                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
+                                               pexprnode2,
+                                               listnode4,
                                                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 ReduceAction421
+private class ReduceAction425
 special ReduceAction
-       redef meth action(p: Parser)
+       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 ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
+                                       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 ReduceAction422
+private class ReduceAction426
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -17070,844 +17981,982 @@ 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 AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
-                                               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 ReduceAction423
+private class ReduceAction427
 special ReduceAction
-       redef meth action(p: Parser)
+       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 pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
                                        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 ReduceAction428
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2
+                                       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 ReduceAction425
+private class ReduceAction429
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tkwtruenode2 = nodearraylist1
-                                       assert tkwtruenode2 isa nullable TKwtrue
-                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
-                                               tkwtruenode2
+                                       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 ReduceAction426
+private class ReduceAction430
 special ReduceAction
-       redef meth action(p: Parser)
+       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(46), node_list)
        end
 init do end
 end
-private class ReduceAction427
+private class ReduceAction431
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2
+                                       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 ReduceAction428
+private class ReduceAction432
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       )
+                                       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 ReduceAction429
+private class ReduceAction433
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction430
+private class ReduceAction434
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction431
+private class ReduceAction435
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction432
+private class ReduceAction436
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction433
+private class ReduceAction437
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction434
+private class ReduceAction438
 special ReduceAction
-       redef meth action(p: Parser)
+       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 AGtExpr = new AGtExpr.init_agtexpr(
                                                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 ReduceAction439
 special ReduceAction
-       redef meth action(p: Parser)
+       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 pexprnode3 = nodearraylist4
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
                                                pexprnode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullnode5
+                                               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 ReduceAction436
+private class ReduceAction440
 special ReduceAction
-       redef meth action(p: Parser)
+       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 AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction437
+private class ReduceAction441
 special ReduceAction
-       redef meth action(p: Parser)
+       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 ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(52), node_list)
+                                       p.push(p.go_to(47), node_list)
        end
 init do end
 end
-private class ReduceAction438
+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 meth action(p: Parser)
+       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)
+                                       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(48), node_list)
        end
 init do end
 end
-private class ReduceAction439
+private class ReduceAction444
 special ReduceAction
-       redef meth action(p: Parser)
+       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 AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(54), node_list)
+                                       p.push(p.go_to(48), node_list)
        end
 init do end
 end
-private class ReduceAction440
+private class ReduceAction445
 special ReduceAction
-       redef meth action(p: Parser)
+       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(55), 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 ReduceAction441
+private class ReduceAction446
 special ReduceAction
-       redef meth action(p: Parser)
+       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 AStarExpr = new AStarExpr.init_astarexpr(
+                                               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 ReduceAction447
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tendstringnode2 = nodearraylist1
-                                       assert tendstringnode2 isa nullable TEndString
-                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
-                                               tendstringnode2
+                                       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(57), node_list)
+                                       p.push(p.go_to(49), node_list)
        end
 init do end
 end
-private class ReduceAction443
+private class ReduceAction448
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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(49), node_list)
        end
 init do end
 end
-private class ReduceAction444
+private class ReduceAction449
 special ReduceAction
-       redef meth action(p: Parser)
+       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 pexprnode1 = nodearraylist1
+                                       assert pexprnode1 isa nullable AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(50), node_list)
        end
 init do end
 end
-private class ReduceAction445
+private class ReduceAction450
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction446
+private class ReduceAction451
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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(50), node_list)
        end
 init do end
 end
-private class ReduceAction447
+private class ReduceAction452
 special ReduceAction
-       redef meth action(p: Parser)
+       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(59), 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 ReduceAction448
+private class ReduceAction453
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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
-                                                       listnode3.append(listnode2)
+                                                       listnode6.append(listnode5)
                                                end
 #                                      end
-                                       node_list = listnode3
-                                       p.push(p.go_to(59), node_list)
+                                       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 ReduceAction449
+private class ReduceAction454
 special ReduceAction
-       redef meth action(p: Parser)
+       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 = 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)
+                                       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 ReduceAction450
+private class ReduceAction455
 special ReduceAction
-       redef meth action(p: Parser)
+       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(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 ReduceAction451
+private class ReduceAction456
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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(52), node_list)
        end
 init do end
 end
-private class ReduceAction452
+private class ReduceAction457
 special ReduceAction
-       redef meth action(p: Parser)
+       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(60), node_list)
+                                       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 ReduceAction453
+private class ReduceAction458
 special ReduceAction
-       redef meth action(p: Parser)
+       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 = 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
-                                                       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 ReduceAction459
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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(61), node_list)
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction455
+private class ReduceAction460
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 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(52), node_list)
        end
 init do end
 end
-private class ReduceAction456
+private class ReduceAction461
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 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
-                                                       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 meth 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 ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               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 ReduceAction462
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 = 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(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 ReduceAction463
 special ReduceAction
-       redef meth action(p: Parser)
+       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 pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               null
+                                       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 ReduceAction460
+private class ReduceAction464
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tidnode1 = nodearraylist1
-                                       assert tidnode1 isa nullable TId
-                                       node_list = tidnode1
-                                       p.push(p.go_to(64), node_list)
+                                       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
+                                                       listnode4.append(listnode3)
+                                               end
+#                                      end
+                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
+                                               pexprnode2,
+                                               listnode4,
+                                               listnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(52), node_list)
        end
 init do end
 end
-private class ReduceAction461
+private class ReduceAction465
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tclassidnode1 = nodearraylist1
-                                       assert tclassidnode1 isa nullable TClassid
-                                       node_list = tclassidnode1
-                                       p.push(p.go_to(65), 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 ReduceAction462
+private class ReduceAction466
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -17921,163 +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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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(52), node_list)
+       end
+init do end
+end
+private class ReduceAction478
+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 = nodearraylist2
+                                       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 ReduceAction479
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -18086,39 +19149,31 @@ 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 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 ReduceAction475
+private class ReduceAction480
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -18127,1257 +19182,1011 @@ 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 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 ReduceAction476
+private class ReduceAction481
 special ReduceAction
-       redef meth action(p: Parser)
+       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 pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable PExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                       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 ReduceAction477
+private class ReduceAction482
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction478
+private class ReduceAction483
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       )
-                                       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(54), node_list)
        end
 init do end
 end
-private class ReduceAction479
+private class ReduceAction484
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 meth action(p: Parser)
+       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)
-       end
-init do end
-end
-private class ReduceAction481
-special ReduceAction
-       redef meth 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(72), 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 ReduceAction482
+private class ReduceAction486
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction483
+private class ReduceAction487
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist1
-                                       assert pexprnode1 isa nullable PExpr
+                                       var tendstringnode2 = nodearraylist1
+                                       assert tendstringnode2 isa nullable TEndString
+                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
+                                               tendstringnode2
+                                       )
                                        node_list = pexprnode1
-                                       p.push(p.go_to(73), node_list)
+                                       p.push(p.go_to(58), node_list)
        end
 init do end
 end
-private class ReduceAction484
+private class ReduceAction488
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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(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 ReduceAction485
+private class ReduceAction489
 special ReduceAction
-       redef meth action(p: Parser)
+       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: 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
+                                       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)
-       end
-init do end
-end
-private class ReduceAction486
-special ReduceAction
-       redef meth 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)
+                                       node_list = listnode3
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction487
+private class ReduceAction490
 special ReduceAction
-       redef meth action(p: Parser)
+       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 listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(59), node_list)
        end
 init do end
 end
-private class ReduceAction488
+private class ReduceAction491
 special ReduceAction
-       redef meth action(p: Parser)
+       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(75), 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 ReduceAction489
+private class ReduceAction492
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 = 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 ReduceAction490
+private class ReduceAction493
 special ReduceAction
-       redef meth action(p: Parser)
+       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 AAndExpr = new AAndExpr.init_aandexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       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 ReduceAction491
+private class ReduceAction494
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(76), node_list)
+                                       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 ReduceAction492
+private class ReduceAction495
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       )
-                                       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 ReduceAction493
+private class ReduceAction496
 special ReduceAction
-       redef meth action(p: Parser)
+       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 listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(60), node_list)
        end
 init do end
 end
-private class ReduceAction494
+private class ReduceAction497
 special ReduceAction
-       redef meth action(p: Parser)
+       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 AEqExpr = new AEqExpr.init_aeqexpr(
-                                               pexprnode2,
-                                               pexprnode3
-                                       )
-                                       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 ReduceAction495
+private class ReduceAction498
 special ReduceAction
-       redef meth action(p: Parser)
+       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 AEeExpr = new AEeExpr.init_aeeexpr(
-                                               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 ReduceAction496
+private class ReduceAction499
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction497
+private class ReduceAction500
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       )
-                                       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 ReduceAction498
+private class ReduceAction501
 special ReduceAction
-       redef meth action(p: Parser)
+       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 ALeExpr = new ALeExpr.init_aleexpr(
-                                               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 ReduceAction499
+private class ReduceAction502
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction500
+private class ReduceAction503
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 ReduceAction501
+private class ReduceAction504
 special ReduceAction
-       redef meth action(p: Parser)
+       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
+                                       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 ReduceAction502
+private class ReduceAction505
 special ReduceAction
-       redef meth action(p: Parser)
+       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)
-       end
-init do end
-end
-private class ReduceAction503
-special ReduceAction
-       redef meth 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)
+                                       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 ReduceAction504
+private class ReduceAction506
 special ReduceAction
-       redef meth action(p: Parser)
+       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)
+                                       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 ReduceAction505
+private class ReduceAction507
 special ReduceAction
-       redef meth action(p: Parser)
+       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(78), node_list)
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction506
+private class ReduceAction508
 special ReduceAction
-       redef meth action(p: Parser)
+       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(79), node_list)
+                                       p.push(p.go_to(67), node_list)
        end
 init do end
 end
-private class ReduceAction507
+private class ReduceAction509
 special ReduceAction
-       redef meth action(p: Parser)
+       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)
-       end
-init do end
-end
-private class ReduceAction508
-special ReduceAction
-       redef meth 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
+                                       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(79), node_list)
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
-private class ReduceAction509
+private class ReduceAction510
 special ReduceAction
-       redef meth action(p: Parser)
+       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
+                                       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 = pexprnode1
-                                       p.push(p.go_to(79), node_list)
-       end
-init do end
-end
-private class ReduceAction510
-special ReduceAction
-       redef meth 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(80), node_list)
+                                       node_list = pdocnode1
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
 private class ReduceAction511
 special ReduceAction
-       redef meth action(p: Parser)
+       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 PExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(80), node_list)
+                                       node_list = null
+                                       p.push(p.go_to(68), node_list)
        end
 init do end
 end
 private class ReduceAction512
 special ReduceAction
-       redef meth action(p: Parser)
+       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)
+                                       node_list = null
+                                       p.push(p.go_to(69), node_list)
        end
 init do end
 end
 private class ReduceAction513
 special ReduceAction
-       redef meth action(p: Parser)
+       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(81), 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 ReduceAction514
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(81), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
 private class ReduceAction515
 special ReduceAction
-       redef meth action(p: Parser)
+       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 PExpr
-                                       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(81), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
 private class ReduceAction516
 special ReduceAction
-       redef meth action(p: Parser)
+       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(81), node_list)
+                                       p.push(p.go_to(70), node_list)
        end
 init do end
 end
 private class ReduceAction517
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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(82), 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 ReduceAction518
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       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(82), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
 private class ReduceAction519
 special ReduceAction
-       redef meth action(p: Parser)
+       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 listnode5 = new Array[Object]
-                                       var listnode6 = 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 pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
+                                       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 ReduceAction520
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = 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
-                                       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
+                                       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(82), node_list)
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
        end
 init do end
 end
 private class ReduceAction521
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 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 ReduceAction522
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 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
                                        )
-                                       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 ReduceAction523
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 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 = 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 ReduceAction524
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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
+                                       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 = 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 ReduceAction525
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -19385,196 +20194,2544 @@ special ReduceAction
                                        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 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 = pexprnode1
-                                       p.push(p.go_to(82), node_list)
-       end
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(72), node_list)
+       end
 init do end
 end
 private class ReduceAction526
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
 private class ReduceAction527
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       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 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 = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(73), node_list)
        end
 init do end
 end
 private class ReduceAction528
 special ReduceAction
-       redef meth action(p: Parser)
+       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(74), node_list)
        end
 init do end
 end
 private class ReduceAction529
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2
+                                       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(82), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
 private class ReduceAction530
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2
+                                       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(82), node_list)
+                                       p.push(p.go_to(74), node_list)
        end
 init do end
 end
 private class ReduceAction531
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       )
+                                       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 ReduceAction532
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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(75), node_list)
+       end
+init do end
+end
+private class ReduceAction533
+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(76), node_list)
+       end
+init do end
+end
+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 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(76), node_list)
+       end
+init do end
+end
+private class ReduceAction535
+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 AAndExpr = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(76), node_list)
+       end
+init do end
+end
+private class ReduceAction536
+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(77), node_list)
+       end
+init do end
+end
+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 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(77), node_list)
+       end
+init do end
+end
+private class ReduceAction538
+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(78), node_list)
+       end
+init do end
+end
+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 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(78), node_list)
+       end
+init do end
+end
+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 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(78), 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 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 ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(78), node_list)
+       end
+init do end
+end
+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 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(78), 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 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 ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(78), 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 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 AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(78), node_list)
+       end
+init do end
+end
+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 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(78), node_list)
+       end
+init do end
+end
+private class ReduceAction546
+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 AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(78), node_list)
+       end
+init do end
+end
+private class ReduceAction547
+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 ptypenode3 = nodearraylist4
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               ptypenode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(78), node_list)
+       end
+init do end
+end
+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 AExpr
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(79), node_list)
+       end
+init do end
+end
+private class ReduceAction549
+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 APlusExpr = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       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 tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2
+                                       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(82), 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(87), node_list)
        end
 init do end
 end
-private class ReduceAction533
+private class ReduceAction625
 special ReduceAction
-       redef meth action(p: Parser)
+       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 tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2
+                                       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(82), 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(87), node_list)
        end
 init do end
 end
-private class ReduceAction534
+private class ReduceAction626
 special ReduceAction
-       redef meth action(p: Parser)
+       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(82), node_list)
+                                       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 ReduceAction535
+private class ReduceAction627
 special ReduceAction
-       redef meth action(p: Parser)
+       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
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       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 ReduceAction536
+private class ReduceAction628
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -19583,30 +22740,48 @@ special ReduceAction
                                        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(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               ptypenode4
+                                       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
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(82), node_list)
+                                       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 ReduceAction537
+private class ReduceAction629
 special ReduceAction
-       redef meth action(p: Parser)
+       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
@@ -19616,64 +22791,98 @@ special ReduceAction
                                        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(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullnode5
+                                       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 = pexprnode1
-                                       p.push(p.go_to(82), node_list)
-       end
-init do end
-end
-private class ReduceAction538
-special ReduceAction
-       redef meth 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(83), 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(87), node_list)
        end
 init do end
 end
-private class ReduceAction539
+private class ReduceAction630
 special ReduceAction
-       redef meth action(p: Parser)
+       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 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 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
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(83), 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(87), node_list)
        end
 init do end
 end
-private class ReduceAction540
+private class ReduceAction631
 special ReduceAction
-       redef meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -19682,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
@@ -19696,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 meth 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 meth action(p: Parser)
+       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 meth 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 meth 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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
@@ -19978,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 meth action(p: Parser)
+       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
@@ -20011,686 +23394,877 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth 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 meth action(p: Parser)
+       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
@@ -20698,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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       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 meth 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 meth action(p: Parser)
+       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
@@ -20836,58 +24426,79 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -20905,26 +24516,27 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -20932,20 +24544,20 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -20956,33 +24568,33 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -20994,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
@@ -21022,13 +24634,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -21065,13 +24677,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -21080,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
@@ -21105,26 +24717,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -21136,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
@@ -21164,13 +24776,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -21207,26 +24819,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -21238,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
@@ -21266,13 +24878,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -21309,26 +24921,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -21345,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,
@@ -21363,26 +24975,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21390,21 +25002,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21412,34 +25024,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -21448,32 +25060,32 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21481,21 +25093,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21503,21 +25115,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21525,21 +25137,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21547,21 +25159,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21569,21 +25181,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21591,21 +25203,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21613,21 +25225,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21635,21 +25247,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21657,34 +25269,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21692,21 +25304,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21714,34 +25326,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21749,21 +25361,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21771,21 +25383,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21793,34 +25405,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -21829,19 +25441,19 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -21850,32 +25462,32 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21886,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
@@ -21903,13 +25515,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -21920,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(
@@ -21929,13 +25541,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -21952,13 +25564,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -21966,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(
@@ -21974,13 +25586,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -21993,13 +25605,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -22010,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
@@ -22029,13 +25641,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -22062,13 +25674,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -22091,13 +25703,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -22105,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
@@ -22123,13 +25735,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
@@ -22139,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
@@ -22157,13 +25769,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -22188,13 +25800,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -22208,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
@@ -22227,13 +25839,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22243,13 +25855,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22259,13 +25871,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22275,13 +25887,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22291,13 +25903,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22307,13 +25919,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22323,13 +25935,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22339,13 +25951,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -22355,26 +25967,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -22388,24 +26000,24 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -22421,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
@@ -22435,26 +26047,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -22466,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
@@ -22494,13 +26106,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -22537,26 +26149,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist11 = p.pop
@@ -22573,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,
@@ -22591,26 +26203,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22618,21 +26230,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22640,34 +26252,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -22676,32 +26288,32 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22709,21 +26321,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22731,21 +26343,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22753,21 +26365,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22775,21 +26387,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22797,21 +26409,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22819,21 +26431,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22841,21 +26453,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22863,21 +26475,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22885,34 +26497,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22920,21 +26532,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22942,34 +26554,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22977,21 +26589,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -22999,21 +26611,21 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -23021,34 +26633,34 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23057,19 +26669,19 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23078,32 +26690,32 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist4 = p.pop
@@ -23114,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
@@ -23131,13 +26743,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23146,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(
@@ -23155,19 +26767,19 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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(
@@ -23175,13 +26787,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23190,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
@@ -23209,13 +26821,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -23238,13 +26850,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23252,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
@@ -23270,13 +26882,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23284,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
@@ -23302,13 +26914,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist7 = p.pop
@@ -23322,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
@@ -23341,13 +26953,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23357,13 +26969,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23373,13 +26985,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23389,13 +27001,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23405,13 +27017,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23421,13 +27033,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23437,13 +27049,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23453,13 +27065,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -23469,26 +27081,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist10 = p.pop
@@ -23502,24 +27114,24 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist12 = p.pop
@@ -23535,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
@@ -23549,53 +27161,53 @@ 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 meth action(p: Parser)
+       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
+                                       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -23607,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
@@ -23635,13 +27247,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23678,26 +27290,26 @@ 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 meth action(p: Parser)
+       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist6 = p.pop
@@ -23709,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
@@ -23737,13 +27349,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist3 = p.pop
@@ -23780,30 +27392,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -23812,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
@@ -23824,30 +27436,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -23856,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
@@ -23868,30 +27480,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -23900,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
@@ -23912,30 +27524,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -23944,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
@@ -23956,30 +27568,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -23988,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
@@ -24000,30 +27612,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24032,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
@@ -24044,30 +27656,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24076,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
@@ -24088,30 +27700,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24120,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
@@ -24132,30 +27744,30 @@ 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 meth action(p: Parser)
+       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
+                                       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24164,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
@@ -24176,13 +27788,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -24197,13 +27809,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24228,30 +27840,30 @@ 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 meth action(p: Parser)
+       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
+                                       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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24260,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
@@ -24272,13 +27884,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -24289,13 +27901,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24316,13 +27928,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -24333,13 +27945,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24360,13 +27972,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
@@ -24377,13 +27989,13 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24404,30 +28016,30 @@ 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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 meth action(p: Parser)
+       redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
@@ -24436,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
@@ -24448,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