Merge: Use more intern methods and add intern factories for NativeString and NativeArray
[nit.git] / src / parser / parser.nit
index e3b7755..9a6f8d2 100644 (file)
 module parser
 
 intrude import parser_prod
+intrude import parser_work
 import tables
 
-# State of the parser automata as stored in the parser stack.
-private class State
-       # The internal state number
-       readable writable var _state: Int
-
-       # The node stored with the state in the stack
-       readable writable var _nodes: nullable Object
-
-       init(state: Int, nodes: nullable Object)
-       do
-               _state = state
-               _nodes = nodes
-       end
-end
-
-class Parser
-       super TablesCapable
-       # Associated lexer
-       var _lexer: Lexer
-
-       # Stack of pushed states and productions
-       var _stack: Array[State]
-
-       # Position in the stack
-       var _stack_pos: Int
-
-       # Create a new parser based on a given lexer
-       init(lexer: Lexer)
-       do
-               _lexer = lexer
-               _stack = new Array[State]
-               _stack_pos = -1
-               build_reduce_table
-       end
-
-       # Do a transition in the automata
-       private fun go_to(index: Int): Int
-       do
-               var state = state
-               var low = 1
-               var high = parser_goto(index, 0) - 1
-
-               while low <= high do
-                       var middle = (low + high) / 2
-                       var subindex = middle * 2 + 1 # +1 because parser_goto(index, 0) is the length
-
-                       var goal = parser_goto(index, subindex)
-                       if state < goal then
-                               high = middle - 1
-                       else if state > goal then
-                               low = middle + 1
-                       else
-                               return parser_goto(index, subindex+1)
-                       end
-               end
-
-               return parser_goto(index, 2) # Default value
-       end
-
-       # Push someting in the state stack
-       private fun push(numstate: Int, list_node: nullable Object)
-       do
-               var pos = _stack_pos + 1
-               _stack_pos = pos
-               if pos < _stack.length then
-                       var state = _stack[pos]
-                       state.state = numstate
-                       state.nodes = list_node
-               else
-                       _stack.push(new State(numstate, list_node))
-               end
-       end
-
-       # The current state
-       private fun state: Int
-       do
-               return _stack[_stack_pos].state
-       end
-
-       # Pop something from the stack state
-       private fun pop: nullable Object
-       do
-               var res = _stack[_stack_pos].nodes
-               _stack_pos = _stack_pos -1
-               return res
-       end
-
-       # Build and return a full AST.
-       fun parse: Start
-       do
-               push(0, null)
-
-               var lexer = _lexer
-               loop
-                       var token = lexer.peek
-                       if token isa AError then
-                               return new Start(null, token)
-                       end
-
-                       var state = self.state
-                       var index = token.parser_index
-                       var action_type = parser_action(state, 2)
-                       var action_value = parser_action(state, 3)
-
-                       var low = 1
-                       var high = parser_action(state, 0) - 1
-
-                       while low <= high do
-                               var middle = (low + high) / 2
-                               var subindex = middle * 3 + 1 # +1 because parser_action(state, 0) is the length
-
-                               var goal = parser_action(state, subindex)
-                               if index < goal then
-                                       high = middle - 1
-                               else if index > goal then
-                                       low = middle + 1
-                               else
-                                       action_type = parser_action(state, subindex+1)
-                                       action_value = parser_action(state, subindex+2)
-                                       break
-                               end
-                       end
-
-                       if action_type == 0 then # SHIFT
-                               push(action_value, lexer.next)
-                       else if action_type == 1 then # REDUCE
-                               _reduce_table[action_value].action(self)
-                       else if action_type == 2 then # ACCEPT
-                               var node2 = lexer.next
-                               assert node2 isa EOF
-                               var node1 = pop
-                               assert node1 isa AModule
-                               var node = new Start(node1, node2)
-                               (new ComputeProdLocationVisitor).enter_visit(node)
-                               return node
-                       else if action_type == 3 then # ERROR
-                               var node2 = new AParserError.init_parser_error("Syntax error: unexpected {token}.", token.location, token)
-                               var node = new Start(null, node2)
-                               return node
-                       end
-               end
-       end
-
-       var _reduce_table: Array[ReduceAction]
-       private fun build_reduce_table
+redef class Parser
+       redef fun build_reduce_table
        do
                _reduce_table = new Array[ReduceAction].with_items(
                        new ReduceAction0(0),
@@ -168,183 +26,183 @@ class Parser
                        new ReduceAction13(0),
                        new ReduceAction14(0),
                        new ReduceAction15(0),
-                       new ReduceAction16(0),
-                       new ReduceAction17(0),
-                       new ReduceAction18(0),
-                       new ReduceAction19(0),
-                       new ReduceAction20(0),
-                       new ReduceAction21(0),
-                       new ReduceAction22(0),
-                       new ReduceAction23(0),
-                       new ReduceAction24(0),
-                       new ReduceAction25(0),
-                       new ReduceAction26(0),
-                       new ReduceAction27(0),
-                       new ReduceAction28(0),
-                       new ReduceAction29(0),
-                       new ReduceAction30(0),
-                       new ReduceAction31(0),
-                       new ReduceAction32(1),
-                       new ReduceAction33(2),
-                       new ReduceAction34(2),
-                       new ReduceAction35(3),
-                       new ReduceAction36(3),
-                       new ReduceAction37(3),
-                       new ReduceAction38(4),
-                       new ReduceAction38(4),
-                       new ReduceAction40(5),
-                       new ReduceAction41(5),
-                       new ReduceAction42(5),
-                       new ReduceAction43(5),
-                       new ReduceAction44(5),
-                       new ReduceAction45(5),
-                       new ReduceAction46(5),
-                       new ReduceAction47(5),
-                       new ReduceAction48(5),
-                       new ReduceAction49(5),
-                       new ReduceAction50(5),
-                       new ReduceAction51(5),
-                       new ReduceAction52(5),
-                       new ReduceAction53(5),
-                       new ReduceAction54(5),
-                       new ReduceAction55(5),
+                       new ReduceAction16(1),
+                       new ReduceAction17(2),
+                       new ReduceAction18(2),
+                       new ReduceAction19(3),
+                       new ReduceAction20(3),
+                       new ReduceAction21(4),
+                       new ReduceAction22(4),
+                       new ReduceAction23(4),
+                       new ReduceAction24(5),
+                       new ReduceAction24(5),
+                       new ReduceAction26(6),
+                       new ReduceAction27(6),
+                       new ReduceAction28(6),
+                       new ReduceAction29(6),
+                       new ReduceAction30(6),
+                       new ReduceAction31(6),
+                       new ReduceAction32(6),
+                       new ReduceAction33(6),
+                       new ReduceAction34(6),
+                       new ReduceAction35(6),
                        new ReduceAction36(6),
-                       new ReduceAction57(6),
-                       new ReduceAction58(7),
-                       new ReduceAction59(7),
-                       new ReduceAction60(7),
-                       new ReduceAction61(7),
-                       new ReduceAction62(7),
-                       new ReduceAction63(7),
-                       new ReduceAction64(8),
-                       new ReduceAction65(8),
-                       new ReduceAction66(8),
-                       new ReduceAction67(9),
-                       new ReduceAction68(10),
-                       new ReduceAction69(10),
-                       new ReduceAction70(11),
-                       new ReduceAction71(12),
-                       new ReduceAction72(13),
-                       new ReduceAction73(13),
-                       new ReduceAction74(13),
-                       new ReduceAction75(13),
-                       new ReduceAction76(13),
-                       new ReduceAction77(13),
-                       new ReduceAction78(13),
-                       new ReduceAction79(13),
-                       new ReduceAction80(13),
-                       new ReduceAction81(13),
-                       new ReduceAction82(13),
-                       new ReduceAction83(13),
-                       new ReduceAction84(13),
-                       new ReduceAction85(13),
-                       new ReduceAction86(13),
-                       new ReduceAction87(13),
-                       new ReduceAction88(13),
-                       new ReduceAction89(13),
-                       new ReduceAction90(13),
-                       new ReduceAction91(13),
-                       new ReduceAction92(13),
-                       new ReduceAction93(13),
-                       new ReduceAction94(13),
-                       new ReduceAction95(13),
-                       new ReduceAction96(13),
-                       new ReduceAction97(13),
-                       new ReduceAction98(13),
-                       new ReduceAction99(13),
-                       new ReduceAction100(13),
-                       new ReduceAction101(14),
-                       new ReduceAction102(14),
-                       new ReduceAction36(14),
-                       new ReduceAction101(15),
-                       new ReduceAction105(15),
-                       new ReduceAction106(16),
-                       new ReduceAction107(17),
-                       new ReduceAction108(18),
-                       new ReduceAction109(18),
-                       new ReduceAction110(18),
-                       new ReduceAction111(18),
-                       new ReduceAction112(19),
-                       new ReduceAction113(19),
-                       new ReduceAction114(19),
-                       new ReduceAction115(19),
-                       new ReduceAction116(19),
-                       new ReduceAction117(19),
-                       new ReduceAction118(19),
-                       new ReduceAction119(19),
-                       new ReduceAction120(19),
-                       new ReduceAction121(19),
-                       new ReduceAction122(19),
-                       new ReduceAction123(19),
-                       new ReduceAction124(19),
-                       new ReduceAction125(19),
-                       new ReduceAction126(19),
-                       new ReduceAction127(19),
-                       new ReduceAction128(19),
-                       new ReduceAction129(19),
-                       new ReduceAction130(20),
-                       new ReduceAction131(20),
-                       new ReduceAction132(20),
-                       new ReduceAction133(20),
-                       new ReduceAction134(21),
-                       new ReduceAction135(21),
-                       new ReduceAction66(21),
-                       new ReduceAction137(22),
-                       new ReduceAction138(23),
-                       new ReduceAction139(23),
-                       new ReduceAction140(23),
-                       new ReduceAction141(23),
-                       new ReduceAction142(23),
-                       new ReduceAction143(24),
-                       new ReduceAction144(25),
-                       new ReduceAction145(25),
-                       new ReduceAction36(25),
-                       new ReduceAction147(26),
-                       new ReduceAction148(27),
-                       new ReduceAction148(27),
-                       new ReduceAction150(27),
-                       new ReduceAction151(28),
-                       new ReduceAction152(28),
-                       new ReduceAction153(28),
-                       new ReduceAction154(28),
-                       new ReduceAction155(29),
-                       new ReduceAction156(29),
-                       new ReduceAction157(29),
-                       new ReduceAction158(29),
-                       new ReduceAction159(29),
-                       new ReduceAction160(29),
-                       new ReduceAction36(30),
-                       new ReduceAction162(30),
-                       new ReduceAction163(31),
-                       new ReduceAction164(32),
-                       new ReduceAction165(32),
-                       new ReduceAction166(33),
-                       new ReduceAction36(33),
-                       new ReduceAction168(34),
-                       new ReduceAction169(35),
-                       new ReduceAction170(35),
-                       new ReduceAction171(35),
-                       new ReduceAction172(35),
-                       new ReduceAction173(36),
-                       new ReduceAction174(36),
-                       new ReduceAction175(37),
-                       new ReduceAction175(38),
-                       new ReduceAction175(39),
-                       new ReduceAction36(39),
-                       new ReduceAction179(40),
-                       new ReduceAction180(40),
-                       new ReduceAction181(40),
-                       new ReduceAction182(40),
-                       new ReduceAction183(41),
-                       new ReduceAction184(41),
-                       new ReduceAction185(42),
-                       new ReduceAction186(42),
-                       new ReduceAction187(43),
-                       new ReduceAction188(43),
-                       new ReduceAction179(44),
-                       new ReduceAction182(45),
+                       new ReduceAction37(6),
+                       new ReduceAction38(6),
+                       new ReduceAction39(6),
+                       new ReduceAction40(6),
+                       new ReduceAction41(6),
+                       new ReduceAction22(7),
+                       new ReduceAction43(7),
+                       new ReduceAction44(8),
+                       new ReduceAction45(8),
+                       new ReduceAction46(8),
+                       new ReduceAction47(8),
+                       new ReduceAction48(8),
+                       new ReduceAction49(9),
+                       new ReduceAction50(9),
+                       new ReduceAction51(9),
+                       new ReduceAction52(10),
+                       new ReduceAction53(11),
+                       new ReduceAction54(11),
+                       new ReduceAction55(12),
+                       new ReduceAction56(13),
+                       new ReduceAction57(14),
+                       new ReduceAction58(14),
+                       new ReduceAction59(14),
+                       new ReduceAction60(14),
+                       new ReduceAction61(14),
+                       new ReduceAction62(14),
+                       new ReduceAction63(14),
+                       new ReduceAction64(14),
+                       new ReduceAction65(14),
+                       new ReduceAction66(14),
+                       new ReduceAction67(14),
+                       new ReduceAction68(14),
+                       new ReduceAction69(14),
+                       new ReduceAction70(14),
+                       new ReduceAction71(14),
+                       new ReduceAction72(14),
+                       new ReduceAction73(14),
+                       new ReduceAction74(14),
+                       new ReduceAction75(14),
+                       new ReduceAction76(14),
+                       new ReduceAction77(14),
+                       new ReduceAction78(14),
+                       new ReduceAction79(14),
+                       new ReduceAction80(14),
+                       new ReduceAction81(14),
+                       new ReduceAction82(14),
+                       new ReduceAction83(14),
+                       new ReduceAction84(14),
+                       new ReduceAction85(14),
+                       new ReduceAction86(14),
+                       new ReduceAction87(15),
+                       new ReduceAction88(15),
+                       new ReduceAction22(15),
+                       new ReduceAction87(16),
+                       new ReduceAction91(16),
+                       new ReduceAction92(17),
+                       new ReduceAction93(18),
+                       new ReduceAction94(19),
+                       new ReduceAction95(19),
+                       new ReduceAction96(19),
+                       new ReduceAction97(19),
+                       new ReduceAction98(20),
+                       new ReduceAction99(20),
+                       new ReduceAction100(20),
+                       new ReduceAction101(20),
+                       new ReduceAction102(20),
+                       new ReduceAction103(20),
+                       new ReduceAction104(20),
+                       new ReduceAction105(20),
+                       new ReduceAction106(20),
+                       new ReduceAction107(20),
+                       new ReduceAction108(20),
+                       new ReduceAction109(20),
+                       new ReduceAction110(20),
+                       new ReduceAction111(20),
+                       new ReduceAction112(20),
+                       new ReduceAction113(20),
+                       new ReduceAction114(20),
+                       new ReduceAction115(20),
+                       new ReduceAction116(21),
+                       new ReduceAction117(21),
+                       new ReduceAction118(21),
+                       new ReduceAction119(21),
+                       new ReduceAction120(22),
+                       new ReduceAction121(22),
+                       new ReduceAction51(22),
+                       new ReduceAction123(23),
+                       new ReduceAction124(24),
+                       new ReduceAction125(24),
+                       new ReduceAction126(24),
+                       new ReduceAction127(24),
+                       new ReduceAction128(24),
+                       new ReduceAction129(25),
+                       new ReduceAction130(25),
+                       new ReduceAction22(25),
+                       new ReduceAction132(26),
+                       new ReduceAction133(27),
+                       new ReduceAction133(27),
+                       new ReduceAction135(27),
+                       new ReduceAction136(28),
+                       new ReduceAction137(28),
+                       new ReduceAction138(28),
+                       new ReduceAction139(29),
+                       new ReduceAction140(29),
+                       new ReduceAction141(29),
+                       new ReduceAction142(29),
+                       new ReduceAction143(29),
+                       new ReduceAction144(29),
+                       new ReduceAction22(30),
+                       new ReduceAction146(30),
+                       new ReduceAction147(31),
+                       new ReduceAction148(32),
+                       new ReduceAction149(32),
+                       new ReduceAction150(33),
+                       new ReduceAction22(33),
+                       new ReduceAction152(34),
+                       new ReduceAction153(35),
+                       new ReduceAction154(35),
+                       new ReduceAction155(35),
+                       new ReduceAction156(35),
+                       new ReduceAction157(36),
+                       new ReduceAction158(36),
+                       new ReduceAction159(37),
+                       new ReduceAction159(38),
+                       new ReduceAction159(39),
+                       new ReduceAction22(39),
+                       new ReduceAction163(40),
+                       new ReduceAction164(40),
+                       new ReduceAction165(40),
+                       new ReduceAction166(40),
+                       new ReduceAction167(41),
+                       new ReduceAction168(41),
+                       new ReduceAction169(42),
+                       new ReduceAction170(42),
+                       new ReduceAction171(43),
+                       new ReduceAction172(43),
+                       new ReduceAction163(44),
+                       new ReduceAction166(45),
+                       new ReduceAction166(45),
+                       new ReduceAction176(45),
+                       new ReduceAction177(45),
+                       new ReduceAction178(45),
+                       new ReduceAction179(45),
+                       new ReduceAction180(45),
+                       new ReduceAction181(45),
                        new ReduceAction182(45),
-                       new ReduceAction192(45),
+                       new ReduceAction183(45),
+                       new ReduceAction184(45),
+                       new ReduceAction185(45),
+                       new ReduceAction186(45),
+                       new ReduceAction166(45),
+                       new ReduceAction166(45),
+                       new ReduceAction166(45),
+                       new ReduceAction166(45),
+                       new ReduceAction166(45),
+                       new ReduceAction166(45),
                        new ReduceAction193(45),
                        new ReduceAction194(45),
                        new ReduceAction195(45),
@@ -352,764 +210,666 @@ class Parser
                        new ReduceAction197(45),
                        new ReduceAction198(45),
                        new ReduceAction199(45),
-                       new ReduceAction200(45),
+                       new ReduceAction198(45),
                        new ReduceAction201(45),
                        new ReduceAction202(45),
-                       new ReduceAction182(45),
-                       new ReduceAction182(45),
-                       new ReduceAction182(45),
-                       new ReduceAction182(45),
-                       new ReduceAction182(45),
-                       new ReduceAction182(45),
-                       new ReduceAction209(45),
-                       new ReduceAction210(45),
-                       new ReduceAction211(45),
-                       new ReduceAction212(45),
-                       new ReduceAction213(45),
-                       new ReduceAction214(45),
-                       new ReduceAction215(45),
-                       new ReduceAction214(45),
-                       new ReduceAction217(45),
-                       new ReduceAction218(45),
-                       new ReduceAction217(45),
-                       new ReduceAction220(45),
-                       new ReduceAction221(46),
-                       new ReduceAction222(47),
-                       new ReduceAction223(48),
-                       new ReduceAction224(48),
-                       new ReduceAction225(48),
-                       new ReduceAction226(48),
-                       new ReduceAction227(49),
-                       new ReduceAction228(49),
-                       new ReduceAction229(49),
-                       new ReduceAction230(49),
-                       new ReduceAction231(49),
-                       new ReduceAction232(49),
-                       new ReduceAction233(49),
-                       new ReduceAction234(49),
-                       new ReduceAction235(49),
-                       new ReduceAction236(49),
-                       new ReduceAction237(50),
-                       new ReduceAction238(50),
-                       new ReduceAction239(51),
-                       new ReduceAction240(51),
-                       new ReduceAction241(52),
-                       new ReduceAction242(52),
-                       new ReduceAction243(52),
-                       new ReduceAction244(52),
-                       new ReduceAction245(52),
-                       new ReduceAction179(53),
-                       new ReduceAction181(53),
-                       new ReduceAction248(54),
-                       new ReduceAction249(54),
-                       new ReduceAction250(55),
-                       new ReduceAction251(55),
-                       new ReduceAction252(56),
-                       new ReduceAction253(56),
-                       new ReduceAction254(56),
-                       new ReduceAction255(56),
-                       new ReduceAction256(57),
-                       new ReduceAction257(57),
-                       new ReduceAction258(57),
-                       new ReduceAction259(57),
-                       new ReduceAction260(58),
-                       new ReduceAction182(59),
-                       new ReduceAction182(60),
-                       new ReduceAction263(60),
-                       new ReduceAction182(61),
-                       new ReduceAction265(61),
-                       new ReduceAction266(61),
-                       new ReduceAction267(61),
-                       new ReduceAction268(61),
-                       new ReduceAction182(62),
-                       new ReduceAction270(62),
-                       new ReduceAction182(63),
-                       new ReduceAction272(63),
-                       new ReduceAction273(63),
-                       new ReduceAction274(63),
-                       new ReduceAction275(63),
-                       new ReduceAction276(63),
-                       new ReduceAction277(63),
-                       new ReduceAction278(63),
-                       new ReduceAction279(63),
-                       new ReduceAction280(63),
-                       new ReduceAction281(63),
-                       new ReduceAction182(64),
-                       new ReduceAction283(64),
-                       new ReduceAction284(64),
-                       new ReduceAction182(65),
-                       new ReduceAction286(65),
-                       new ReduceAction287(65),
-                       new ReduceAction288(65),
-                       new ReduceAction182(66),
-                       new ReduceAction290(66),
-                       new ReduceAction291(66),
-                       new ReduceAction182(67),
-                       new ReduceAction293(67),
-                       new ReduceAction294(67),
-                       new ReduceAction295(67),
+                       new ReduceAction201(45),
+                       new ReduceAction204(45),
+                       new ReduceAction205(46),
+                       new ReduceAction206(47),
+                       new ReduceAction207(48),
+                       new ReduceAction208(48),
+                       new ReduceAction209(48),
+                       new ReduceAction210(48),
+                       new ReduceAction211(49),
+                       new ReduceAction212(49),
+                       new ReduceAction213(49),
+                       new ReduceAction214(49),
+                       new ReduceAction215(49),
+                       new ReduceAction216(49),
+                       new ReduceAction217(49),
+                       new ReduceAction218(49),
+                       new ReduceAction219(49),
+                       new ReduceAction220(49),
+                       new ReduceAction221(50),
+                       new ReduceAction222(50),
+                       new ReduceAction223(51),
+                       new ReduceAction224(51),
+                       new ReduceAction225(52),
+                       new ReduceAction226(52),
+                       new ReduceAction227(52),
+                       new ReduceAction228(52),
+                       new ReduceAction229(52),
+                       new ReduceAction163(53),
+                       new ReduceAction165(53),
+                       new ReduceAction232(54),
+                       new ReduceAction233(54),
+                       new ReduceAction234(55),
+                       new ReduceAction235(55),
+                       new ReduceAction236(56),
+                       new ReduceAction237(56),
+                       new ReduceAction238(56),
+                       new ReduceAction239(56),
+                       new ReduceAction240(57),
+                       new ReduceAction241(57),
+                       new ReduceAction242(57),
+                       new ReduceAction243(57),
+                       new ReduceAction244(58),
+                       new ReduceAction166(59),
+                       new ReduceAction166(60),
+                       new ReduceAction247(60),
+                       new ReduceAction166(61),
+                       new ReduceAction249(61),
+                       new ReduceAction250(61),
+                       new ReduceAction251(61),
+                       new ReduceAction252(61),
+                       new ReduceAction166(62),
+                       new ReduceAction254(62),
+                       new ReduceAction166(63),
+                       new ReduceAction256(63),
+                       new ReduceAction257(63),
+                       new ReduceAction258(63),
+                       new ReduceAction259(63),
+                       new ReduceAction260(63),
+                       new ReduceAction261(63),
+                       new ReduceAction262(63),
+                       new ReduceAction263(63),
+                       new ReduceAction264(63),
+                       new ReduceAction265(63),
+                       new ReduceAction166(64),
+                       new ReduceAction267(64),
+                       new ReduceAction268(64),
+                       new ReduceAction166(65),
+                       new ReduceAction270(65),
+                       new ReduceAction271(65),
+                       new ReduceAction272(65),
+                       new ReduceAction166(66),
+                       new ReduceAction274(66),
+                       new ReduceAction275(66),
+                       new ReduceAction166(67),
+                       new ReduceAction277(67),
+                       new ReduceAction278(67),
+                       new ReduceAction279(67),
+                       new ReduceAction280(68),
+                       new ReduceAction281(68),
+                       new ReduceAction193(68),
+                       new ReduceAction194(68),
+                       new ReduceAction195(68),
+                       new ReduceAction196(68),
+                       new ReduceAction197(68),
+                       new ReduceAction287(68),
+                       new ReduceAction288(68),
+                       new ReduceAction289(68),
+                       new ReduceAction290(68),
+                       new ReduceAction291(68),
+                       new ReduceAction292(68),
+                       new ReduceAction293(68),
+                       new ReduceAction294(68),
+                       new ReduceAction295(68),
                        new ReduceAction296(68),
                        new ReduceAction297(68),
-                       new ReduceAction209(68),
-                       new ReduceAction210(68),
-                       new ReduceAction211(68),
-                       new ReduceAction212(68),
-                       new ReduceAction213(68),
+                       new ReduceAction298(68),
+                       new ReduceAction299(68),
+                       new ReduceAction300(68),
+                       new ReduceAction166(68),
+                       new ReduceAction302(68),
                        new ReduceAction303(68),
                        new ReduceAction304(68),
                        new ReduceAction305(68),
-                       new ReduceAction306(68),
-                       new ReduceAction307(68),
-                       new ReduceAction308(68),
-                       new ReduceAction309(68),
-                       new ReduceAction310(68),
-                       new ReduceAction311(68),
-                       new ReduceAction312(68),
-                       new ReduceAction313(68),
-                       new ReduceAction314(68),
-                       new ReduceAction315(68),
-                       new ReduceAction182(68),
-                       new ReduceAction317(68),
-                       new ReduceAction318(68),
-                       new ReduceAction319(68),
-                       new ReduceAction320(69),
-                       new ReduceAction321(69),
-                       new ReduceAction322(70),
-                       new ReduceAction323(70),
-                       new ReduceAction324(71),
-                       new ReduceAction322(72),
-                       new ReduceAction323(72),
-                       new ReduceAction327(73),
-                       new ReduceAction328(74),
-                       new ReduceAction329(75),
-                       new ReduceAction330(75),
-                       new ReduceAction331(76),
-                       new ReduceAction36(76),
-                       new ReduceAction333(77),
-                       new ReduceAction334(77),
-                       new ReduceAction335(78),
-                       new ReduceAction336(79),
-                       new ReduceAction337(79),
-                       new ReduceAction335(80),
-                       new ReduceAction339(81),
-                       new ReduceAction340(81),
-                       new ReduceAction341(81),
-                       new ReduceAction342(81),
-                       new ReduceAction343(81),
-                       new ReduceAction344(82),
-                       new ReduceAction345(83),
-                       new ReduceAction346(83),
-                       new ReduceAction347(84),
-                       new ReduceAction348(85),
-                       new ReduceAction349(85),
-                       new ReduceAction349(85),
-                       new ReduceAction351(85),
-                       new ReduceAction352(86),
-                       new ReduceAction353(86),
-                       new ReduceAction354(86),
-                       new ReduceAction355(86),
-                       new ReduceAction356(87),
-                       new ReduceAction357(87),
-                       new ReduceAction358(87),
-                       new ReduceAction356(88),
-                       new ReduceAction360(88),
-                       new ReduceAction357(88),
-                       new ReduceAction358(88),
-                       new ReduceAction363(89),
-                       new ReduceAction323(90),
-                       new ReduceAction365(90),
-                       new ReduceAction366(91),
-                       new ReduceAction367(92),
-                       new ReduceAction368(92),
-                       new ReduceAction369(93),
-                       new ReduceAction370(93),
-                       new ReduceAction371(93),
-                       new ReduceAction372(93),
-                       new ReduceAction373(94),
-                       new ReduceAction374(94),
-                       new ReduceAction375(94),
-                       new ReduceAction36(94),
-                       new ReduceAction377(95),
-                       new ReduceAction378(95),
-                       new ReduceAction379(95),
-                       new ReduceAction378(95),
-                       new ReduceAction381(96),
-                       new ReduceAction382(96),
-                       new ReduceAction383(96),
-                       new ReduceAction382(96),
-                       new ReduceAction385(97),
-                       new ReduceAction386(98),
-                       new ReduceAction36(99),
-                       new ReduceAction388(99),
-                       new ReduceAction389(100),
-                       new ReduceAction389(100),
-                       new ReduceAction391(101),
-                       new ReduceAction392(101),
-                       new ReduceAction37(101),
-                       new ReduceAction36(102),
-                       new ReduceAction395(102),
-                       new ReduceAction396(103),
-                       new ReduceAction397(103),
-                       new ReduceAction389(103),
-                       new ReduceAction71(104),
-                       new ReduceAction72(105),
-                       new ReduceAction73(105),
-                       new ReduceAction74(105),
-                       new ReduceAction75(105),
-                       new ReduceAction78(105),
-                       new ReduceAction79(105),
-                       new ReduceAction101(106),
-                       new ReduceAction102(106),
-                       new ReduceAction130(107),
-                       new ReduceAction132(107),
-                       new ReduceAction169(108),
-                       new ReduceAction170(108),
-                       new ReduceAction182(109),
-                       new ReduceAction182(110),
-                       new ReduceAction263(110),
-                       new ReduceAction182(111),
-                       new ReduceAction265(111),
-                       new ReduceAction266(111),
-                       new ReduceAction267(111),
-                       new ReduceAction268(111),
-                       new ReduceAction182(112),
-                       new ReduceAction270(112),
-                       new ReduceAction182(113),
-                       new ReduceAction272(113),
-                       new ReduceAction273(113),
-                       new ReduceAction274(113),
-                       new ReduceAction275(113),
-                       new ReduceAction276(113),
-                       new ReduceAction277(113),
-                       new ReduceAction278(113),
-                       new ReduceAction279(113),
-                       new ReduceAction280(113),
-                       new ReduceAction281(113),
-                       new ReduceAction182(114),
-                       new ReduceAction283(114),
-                       new ReduceAction284(114),
-                       new ReduceAction182(115),
-                       new ReduceAction286(115),
-                       new ReduceAction287(115),
-                       new ReduceAction288(115),
-                       new ReduceAction182(116),
-                       new ReduceAction290(116),
-                       new ReduceAction291(116),
-                       new ReduceAction182(117),
+                       new ReduceAction306(69),
+                       new ReduceAction307(69),
+                       new ReduceAction308(70),
+                       new ReduceAction309(70),
+                       new ReduceAction310(71),
+                       new ReduceAction308(72),
+                       new ReduceAction309(72),
+                       new ReduceAction313(73),
+                       new ReduceAction314(74),
+                       new ReduceAction315(75),
+                       new ReduceAction316(75),
+                       new ReduceAction317(76),
+                       new ReduceAction22(76),
+                       new ReduceAction319(77),
+                       new ReduceAction320(77),
+                       new ReduceAction321(78),
+                       new ReduceAction322(79),
+                       new ReduceAction323(79),
+                       new ReduceAction321(80),
+                       new ReduceAction325(81),
+                       new ReduceAction326(81),
+                       new ReduceAction327(81),
+                       new ReduceAction328(81),
+                       new ReduceAction329(81),
+                       new ReduceAction330(82),
+                       new ReduceAction331(83),
+                       new ReduceAction332(83),
+                       new ReduceAction333(84),
+                       new ReduceAction334(85),
+                       new ReduceAction335(85),
+                       new ReduceAction335(85),
+                       new ReduceAction337(85),
+                       new ReduceAction338(86),
+                       new ReduceAction339(86),
+                       new ReduceAction340(86),
+                       new ReduceAction341(86),
+                       new ReduceAction342(87),
+                       new ReduceAction343(87),
+                       new ReduceAction344(87),
+                       new ReduceAction342(88),
+                       new ReduceAction346(88),
+                       new ReduceAction343(88),
+                       new ReduceAction344(88),
+                       new ReduceAction349(89),
+                       new ReduceAction309(90),
+                       new ReduceAction351(90),
+                       new ReduceAction352(91),
+                       new ReduceAction353(92),
+                       new ReduceAction354(92),
+                       new ReduceAction355(93),
+                       new ReduceAction356(93),
+                       new ReduceAction357(93),
+                       new ReduceAction358(93),
+                       new ReduceAction359(94),
+                       new ReduceAction360(94),
+                       new ReduceAction361(94),
+                       new ReduceAction22(94),
+                       new ReduceAction363(95),
+                       new ReduceAction364(95),
+                       new ReduceAction365(95),
+                       new ReduceAction364(95),
+                       new ReduceAction367(96),
+                       new ReduceAction368(96),
+                       new ReduceAction369(96),
+                       new ReduceAction368(96),
+                       new ReduceAction371(97),
+                       new ReduceAction372(98),
+                       new ReduceAction22(99),
+                       new ReduceAction374(99),
+                       new ReduceAction375(100),
+                       new ReduceAction375(100),
+                       new ReduceAction377(101),
+                       new ReduceAction378(101),
+                       new ReduceAction23(101),
+                       new ReduceAction22(102),
+                       new ReduceAction381(102),
+                       new ReduceAction382(103),
+                       new ReduceAction383(103),
+                       new ReduceAction375(103),
+                       new ReduceAction56(104),
+                       new ReduceAction57(105),
+                       new ReduceAction58(105),
+                       new ReduceAction59(105),
+                       new ReduceAction61(105),
+                       new ReduceAction64(105),
+                       new ReduceAction65(105),
+                       new ReduceAction87(106),
+                       new ReduceAction88(106),
+                       new ReduceAction153(107),
+                       new ReduceAction154(107),
+                       new ReduceAction166(108),
+                       new ReduceAction166(109),
+                       new ReduceAction247(109),
+                       new ReduceAction166(110),
+                       new ReduceAction249(110),
+                       new ReduceAction250(110),
+                       new ReduceAction251(110),
+                       new ReduceAction252(110),
+                       new ReduceAction166(111),
+                       new ReduceAction254(111),
+                       new ReduceAction166(112),
+                       new ReduceAction256(112),
+                       new ReduceAction257(112),
+                       new ReduceAction258(112),
+                       new ReduceAction259(112),
+                       new ReduceAction260(112),
+                       new ReduceAction261(112),
+                       new ReduceAction262(112),
+                       new ReduceAction263(112),
+                       new ReduceAction264(112),
+                       new ReduceAction265(112),
+                       new ReduceAction166(113),
+                       new ReduceAction267(113),
+                       new ReduceAction268(113),
+                       new ReduceAction166(114),
+                       new ReduceAction270(114),
+                       new ReduceAction271(114),
+                       new ReduceAction272(114),
+                       new ReduceAction166(115),
+                       new ReduceAction274(115),
+                       new ReduceAction275(115),
+                       new ReduceAction166(116),
+                       new ReduceAction277(116),
+                       new ReduceAction278(116),
+                       new ReduceAction279(116),
+                       new ReduceAction280(117),
+                       new ReduceAction281(117),
+                       new ReduceAction193(117),
+                       new ReduceAction194(117),
+                       new ReduceAction195(117),
+                       new ReduceAction196(117),
+                       new ReduceAction197(117),
+                       new ReduceAction288(117),
+                       new ReduceAction292(117),
                        new ReduceAction293(117),
                        new ReduceAction294(117),
                        new ReduceAction295(117),
-                       new ReduceAction296(118),
-                       new ReduceAction297(118),
-                       new ReduceAction209(118),
-                       new ReduceAction210(118),
-                       new ReduceAction211(118),
-                       new ReduceAction212(118),
-                       new ReduceAction213(118),
-                       new ReduceAction304(118),
-                       new ReduceAction308(118),
-                       new ReduceAction309(118),
-                       new ReduceAction310(118),
-                       new ReduceAction311(118),
-                       new ReduceAction312(118),
-                       new ReduceAction313(118),
-                       new ReduceAction314(118),
-                       new ReduceAction315(118),
-                       new ReduceAction182(118),
-                       new ReduceAction317(118),
-                       new ReduceAction318(118),
-                       new ReduceAction319(118),
-                       new ReduceAction169(119),
-                       new ReduceAction170(119),
-                       new ReduceAction171(119),
-                       new ReduceAction172(119),
-                       new ReduceAction182(120),
-                       new ReduceAction182(120),
-                       new ReduceAction192(120),
-                       new ReduceAction193(120),
-                       new ReduceAction194(120),
-                       new ReduceAction195(120),
-                       new ReduceAction196(120),
-                       new ReduceAction197(120),
-                       new ReduceAction198(120),
-                       new ReduceAction199(120),
-                       new ReduceAction200(120),
-                       new ReduceAction201(120),
-                       new ReduceAction202(120),
-                       new ReduceAction182(120),
-                       new ReduceAction182(120),
-                       new ReduceAction182(120),
-                       new ReduceAction182(120),
-                       new ReduceAction182(120),
-                       new ReduceAction182(120),
-                       new ReduceAction209(120),
-                       new ReduceAction210(120),
+                       new ReduceAction296(117),
+                       new ReduceAction297(117),
+                       new ReduceAction298(117),
+                       new ReduceAction299(117),
+                       new ReduceAction300(117),
+                       new ReduceAction166(117),
+                       new ReduceAction302(117),
+                       new ReduceAction303(117),
+                       new ReduceAction304(117),
+                       new ReduceAction305(117),
+                       new ReduceAction153(118),
+                       new ReduceAction154(118),
+                       new ReduceAction155(118),
+                       new ReduceAction156(118),
+                       new ReduceAction166(119),
+                       new ReduceAction166(119),
+                       new ReduceAction176(119),
+                       new ReduceAction177(119),
+                       new ReduceAction178(119),
+                       new ReduceAction179(119),
+                       new ReduceAction180(119),
+                       new ReduceAction181(119),
+                       new ReduceAction182(119),
+                       new ReduceAction183(119),
+                       new ReduceAction184(119),
+                       new ReduceAction185(119),
+                       new ReduceAction186(119),
+                       new ReduceAction166(119),
+                       new ReduceAction166(119),
+                       new ReduceAction166(119),
+                       new ReduceAction166(119),
+                       new ReduceAction166(119),
+                       new ReduceAction166(119),
+                       new ReduceAction193(119),
+                       new ReduceAction194(119),
+                       new ReduceAction195(119),
+                       new ReduceAction196(119),
+                       new ReduceAction197(119),
+                       new ReduceAction198(119),
+                       new ReduceAction199(119),
+                       new ReduceAction198(119),
+                       new ReduceAction201(119),
+                       new ReduceAction202(119),
+                       new ReduceAction201(119),
+                       new ReduceAction204(119),
                        new ReduceAction211(120),
                        new ReduceAction212(120),
                        new ReduceAction213(120),
                        new ReduceAction214(120),
                        new ReduceAction215(120),
-                       new ReduceAction214(120),
+                       new ReduceAction216(120),
                        new ReduceAction217(120),
                        new ReduceAction218(120),
-                       new ReduceAction217(120),
+                       new ReduceAction219(120),
                        new ReduceAction220(120),
-                       new ReduceAction227(121),
-                       new ReduceAction228(121),
-                       new ReduceAction229(121),
-                       new ReduceAction230(121),
-                       new ReduceAction231(121),
-                       new ReduceAction232(121),
-                       new ReduceAction233(121),
-                       new ReduceAction234(121),
-                       new ReduceAction235(121),
-                       new ReduceAction236(121),
-                       new ReduceAction182(122),
-                       new ReduceAction182(123),
-                       new ReduceAction263(123),
-                       new ReduceAction182(124),
-                       new ReduceAction265(124),
-                       new ReduceAction266(124),
-                       new ReduceAction267(124),
-                       new ReduceAction268(124),
-                       new ReduceAction182(125),
-                       new ReduceAction270(125),
-                       new ReduceAction182(126),
-                       new ReduceAction272(126),
-                       new ReduceAction273(126),
-                       new ReduceAction274(126),
-                       new ReduceAction275(126),
-                       new ReduceAction276(126),
-                       new ReduceAction277(126),
-                       new ReduceAction278(126),
-                       new ReduceAction279(126),
-                       new ReduceAction280(126),
-                       new ReduceAction281(126),
-                       new ReduceAction182(127),
-                       new ReduceAction283(127),
-                       new ReduceAction284(127),
-                       new ReduceAction182(128),
-                       new ReduceAction286(128),
-                       new ReduceAction287(128),
-                       new ReduceAction288(128),
-                       new ReduceAction182(129),
-                       new ReduceAction290(129),
-                       new ReduceAction291(129),
-                       new ReduceAction182(130),
+                       new ReduceAction166(121),
+                       new ReduceAction166(122),
+                       new ReduceAction247(122),
+                       new ReduceAction166(123),
+                       new ReduceAction249(123),
+                       new ReduceAction250(123),
+                       new ReduceAction251(123),
+                       new ReduceAction252(123),
+                       new ReduceAction166(124),
+                       new ReduceAction254(124),
+                       new ReduceAction166(125),
+                       new ReduceAction256(125),
+                       new ReduceAction257(125),
+                       new ReduceAction258(125),
+                       new ReduceAction259(125),
+                       new ReduceAction260(125),
+                       new ReduceAction261(125),
+                       new ReduceAction262(125),
+                       new ReduceAction263(125),
+                       new ReduceAction264(125),
+                       new ReduceAction265(125),
+                       new ReduceAction166(126),
+                       new ReduceAction267(126),
+                       new ReduceAction268(126),
+                       new ReduceAction166(127),
+                       new ReduceAction270(127),
+                       new ReduceAction271(127),
+                       new ReduceAction272(127),
+                       new ReduceAction166(128),
+                       new ReduceAction274(128),
+                       new ReduceAction275(128),
+                       new ReduceAction166(129),
+                       new ReduceAction277(129),
+                       new ReduceAction278(129),
+                       new ReduceAction279(129),
+                       new ReduceAction280(130),
+                       new ReduceAction281(130),
+                       new ReduceAction193(130),
+                       new ReduceAction194(130),
+                       new ReduceAction195(130),
+                       new ReduceAction196(130),
+                       new ReduceAction197(130),
+                       new ReduceAction287(130),
+                       new ReduceAction288(130),
+                       new ReduceAction292(130),
                        new ReduceAction293(130),
                        new ReduceAction294(130),
                        new ReduceAction295(130),
-                       new ReduceAction296(131),
-                       new ReduceAction297(131),
-                       new ReduceAction209(131),
-                       new ReduceAction210(131),
-                       new ReduceAction211(131),
-                       new ReduceAction212(131),
-                       new ReduceAction213(131),
-                       new ReduceAction303(131),
-                       new ReduceAction304(131),
-                       new ReduceAction308(131),
-                       new ReduceAction309(131),
-                       new ReduceAction310(131),
-                       new ReduceAction311(131),
-                       new ReduceAction312(131),
-                       new ReduceAction313(131),
-                       new ReduceAction314(131),
+                       new ReduceAction296(130),
+                       new ReduceAction297(130),
+                       new ReduceAction298(130),
+                       new ReduceAction299(130),
+                       new ReduceAction300(130),
+                       new ReduceAction166(130),
+                       new ReduceAction303(130),
+                       new ReduceAction304(130),
+                       new ReduceAction305(130),
                        new ReduceAction315(131),
-                       new ReduceAction182(131),
-                       new ReduceAction318(131),
-                       new ReduceAction319(131),
-                       new ReduceAction329(132),
-                       new ReduceAction330(132),
-                       new ReduceAction331(133),
-                       new ReduceAction36(133),
-                       new ReduceAction333(134),
-                       new ReduceAction345(135),
-                       new ReduceAction346(135),
-                       new ReduceAction348(136),
-                       new ReduceAction349(136),
-                       new ReduceAction349(136),
-                       new ReduceAction169(137),
-                       new ReduceAction170(137),
-                       new ReduceAction182(138),
-                       new ReduceAction182(139),
-                       new ReduceAction263(139),
-                       new ReduceAction182(140),
-                       new ReduceAction265(140),
-                       new ReduceAction266(140),
-                       new ReduceAction267(140),
-                       new ReduceAction268(140),
-                       new ReduceAction182(141),
-                       new ReduceAction270(141),
-                       new ReduceAction182(142),
-                       new ReduceAction272(142),
-                       new ReduceAction273(142),
-                       new ReduceAction274(142),
-                       new ReduceAction275(142),
-                       new ReduceAction276(142),
-                       new ReduceAction277(142),
-                       new ReduceAction278(142),
-                       new ReduceAction279(142),
-                       new ReduceAction280(142),
-                       new ReduceAction281(142),
-                       new ReduceAction182(143),
-                       new ReduceAction283(143),
-                       new ReduceAction284(143),
-                       new ReduceAction182(144),
-                       new ReduceAction286(144),
-                       new ReduceAction287(144),
-                       new ReduceAction288(144),
-                       new ReduceAction182(145),
-                       new ReduceAction290(145),
-                       new ReduceAction291(145),
-                       new ReduceAction182(146),
+                       new ReduceAction316(131),
+                       new ReduceAction317(132),
+                       new ReduceAction22(132),
+                       new ReduceAction319(133),
+                       new ReduceAction331(134),
+                       new ReduceAction332(134),
+                       new ReduceAction334(135),
+                       new ReduceAction335(135),
+                       new ReduceAction335(135),
+                       new ReduceAction153(136),
+                       new ReduceAction154(136),
+                       new ReduceAction166(137),
+                       new ReduceAction166(138),
+                       new ReduceAction247(138),
+                       new ReduceAction166(139),
+                       new ReduceAction249(139),
+                       new ReduceAction250(139),
+                       new ReduceAction251(139),
+                       new ReduceAction252(139),
+                       new ReduceAction166(140),
+                       new ReduceAction254(140),
+                       new ReduceAction166(141),
+                       new ReduceAction256(141),
+                       new ReduceAction257(141),
+                       new ReduceAction258(141),
+                       new ReduceAction259(141),
+                       new ReduceAction260(141),
+                       new ReduceAction261(141),
+                       new ReduceAction262(141),
+                       new ReduceAction263(141),
+                       new ReduceAction264(141),
+                       new ReduceAction265(141),
+                       new ReduceAction166(142),
+                       new ReduceAction267(142),
+                       new ReduceAction268(142),
+                       new ReduceAction166(143),
+                       new ReduceAction270(143),
+                       new ReduceAction271(143),
+                       new ReduceAction272(143),
+                       new ReduceAction166(144),
+                       new ReduceAction274(144),
+                       new ReduceAction275(144),
+                       new ReduceAction166(145),
+                       new ReduceAction277(145),
+                       new ReduceAction600(145),
+                       new ReduceAction601(146),
+                       new ReduceAction602(146),
+                       new ReduceAction195(146),
+                       new ReduceAction604(146),
+                       new ReduceAction288(146),
+                       new ReduceAction292(146),
                        new ReduceAction293(146),
-                       new ReduceAction612(146),
-                       new ReduceAction613(147),
-                       new ReduceAction614(147),
-                       new ReduceAction211(147),
-                       new ReduceAction616(147),
-                       new ReduceAction304(147),
-                       new ReduceAction308(147),
-                       new ReduceAction309(147),
-                       new ReduceAction310(147),
-                       new ReduceAction311(147),
-                       new ReduceAction312(147),
-                       new ReduceAction313(147),
-                       new ReduceAction314(147),
-                       new ReduceAction315(147),
-                       new ReduceAction182(147),
-                       new ReduceAction318(147),
-                       new ReduceAction319(147),
-                       new ReduceAction629(148),
-                       new ReduceAction630(148),
+                       new ReduceAction294(146),
+                       new ReduceAction295(146),
+                       new ReduceAction296(146),
+                       new ReduceAction297(146),
+                       new ReduceAction298(146),
+                       new ReduceAction299(146),
+                       new ReduceAction300(146),
+                       new ReduceAction166(146),
+                       new ReduceAction303(146),
+                       new ReduceAction304(146),
+                       new ReduceAction305(146),
+                       new ReduceAction619(147),
+                       new ReduceAction620(147),
+                       new ReduceAction163(148),
+                       new ReduceAction164(148),
+                       new ReduceAction165(148),
+                       new ReduceAction166(148),
+                       new ReduceAction166(149),
+                       new ReduceAction166(149),
+                       new ReduceAction176(149),
+                       new ReduceAction177(149),
+                       new ReduceAction178(149),
                        new ReduceAction179(149),
                        new ReduceAction180(149),
                        new ReduceAction181(149),
                        new ReduceAction182(149),
-                       new ReduceAction182(150),
-                       new ReduceAction182(150),
-                       new ReduceAction192(150),
-                       new ReduceAction193(150),
-                       new ReduceAction194(150),
-                       new ReduceAction195(150),
-                       new ReduceAction196(150),
-                       new ReduceAction197(150),
-                       new ReduceAction198(150),
-                       new ReduceAction199(150),
-                       new ReduceAction200(150),
-                       new ReduceAction201(150),
-                       new ReduceAction202(150),
-                       new ReduceAction182(150),
-                       new ReduceAction182(150),
-                       new ReduceAction182(150),
-                       new ReduceAction182(150),
-                       new ReduceAction182(150),
-                       new ReduceAction182(150),
-                       new ReduceAction209(150),
-                       new ReduceAction210(150),
-                       new ReduceAction211(150),
-                       new ReduceAction212(150),
-                       new ReduceAction213(150),
-                       new ReduceAction214(150),
-                       new ReduceAction215(150),
-                       new ReduceAction214(150),
-                       new ReduceAction217(150),
-                       new ReduceAction218(150),
-                       new ReduceAction217(150),
-                       new ReduceAction220(150),
-                       new ReduceAction222(151),
-                       new ReduceAction223(152),
-                       new ReduceAction224(152),
-                       new ReduceAction225(152),
-                       new ReduceAction226(152),
-                       new ReduceAction227(153),
-                       new ReduceAction228(153),
-                       new ReduceAction229(153),
-                       new ReduceAction230(153),
-                       new ReduceAction231(153),
-                       new ReduceAction232(153),
-                       new ReduceAction233(153),
-                       new ReduceAction234(153),
-                       new ReduceAction235(153),
-                       new ReduceAction236(153),
-                       new ReduceAction239(154),
-                       new ReduceAction240(154),
-                       new ReduceAction241(155),
-                       new ReduceAction248(156),
-                       new ReduceAction249(156),
-                       new ReduceAction250(157),
-                       new ReduceAction251(157),
-                       new ReduceAction252(158),
-                       new ReduceAction253(158),
-                       new ReduceAction254(158),
-                       new ReduceAction255(158),
-                       new ReduceAction256(159),
-                       new ReduceAction257(159),
-                       new ReduceAction182(160),
+                       new ReduceAction183(149),
+                       new ReduceAction184(149),
+                       new ReduceAction185(149),
+                       new ReduceAction186(149),
+                       new ReduceAction166(149),
+                       new ReduceAction166(149),
+                       new ReduceAction166(149),
+                       new ReduceAction166(149),
+                       new ReduceAction166(149),
+                       new ReduceAction166(149),
+                       new ReduceAction193(149),
+                       new ReduceAction194(149),
+                       new ReduceAction195(149),
+                       new ReduceAction196(149),
+                       new ReduceAction197(149),
+                       new ReduceAction198(149),
+                       new ReduceAction199(149),
+                       new ReduceAction198(149),
+                       new ReduceAction201(149),
+                       new ReduceAction202(149),
+                       new ReduceAction201(149),
+                       new ReduceAction204(149),
+                       new ReduceAction206(150),
+                       new ReduceAction207(151),
+                       new ReduceAction208(151),
+                       new ReduceAction209(151),
+                       new ReduceAction210(151),
+                       new ReduceAction211(152),
+                       new ReduceAction212(152),
+                       new ReduceAction213(152),
+                       new ReduceAction214(152),
+                       new ReduceAction215(152),
+                       new ReduceAction216(152),
+                       new ReduceAction217(152),
+                       new ReduceAction218(152),
+                       new ReduceAction219(152),
+                       new ReduceAction220(152),
+                       new ReduceAction223(153),
+                       new ReduceAction224(153),
+                       new ReduceAction225(154),
+                       new ReduceAction232(155),
+                       new ReduceAction233(155),
+                       new ReduceAction234(156),
+                       new ReduceAction235(156),
+                       new ReduceAction236(157),
+                       new ReduceAction237(157),
+                       new ReduceAction238(157),
+                       new ReduceAction239(157),
+                       new ReduceAction240(158),
+                       new ReduceAction241(158),
+                       new ReduceAction166(159),
+                       new ReduceAction166(160),
+                       new ReduceAction166(161),
+                       new ReduceAction166(161),
+                       new ReduceAction176(161),
+                       new ReduceAction177(161),
+                       new ReduceAction178(161),
+                       new ReduceAction179(161),
+                       new ReduceAction180(161),
+                       new ReduceAction181(161),
                        new ReduceAction182(161),
-                       new ReduceAction182(162),
-                       new ReduceAction182(162),
-                       new ReduceAction192(162),
-                       new ReduceAction193(162),
-                       new ReduceAction194(162),
-                       new ReduceAction195(162),
-                       new ReduceAction196(162),
-                       new ReduceAction197(162),
-                       new ReduceAction198(162),
-                       new ReduceAction199(162),
-                       new ReduceAction200(162),
-                       new ReduceAction201(162),
-                       new ReduceAction202(162),
-                       new ReduceAction182(162),
-                       new ReduceAction182(162),
-                       new ReduceAction182(162),
-                       new ReduceAction182(162),
-                       new ReduceAction182(162),
-                       new ReduceAction182(162),
-                       new ReduceAction209(162),
-                       new ReduceAction210(162),
+                       new ReduceAction183(161),
+                       new ReduceAction184(161),
+                       new ReduceAction185(161),
+                       new ReduceAction186(161),
+                       new ReduceAction166(161),
+                       new ReduceAction166(161),
+                       new ReduceAction166(161),
+                       new ReduceAction166(161),
+                       new ReduceAction166(161),
+                       new ReduceAction166(161),
+                       new ReduceAction193(161),
+                       new ReduceAction194(161),
+                       new ReduceAction195(161),
+                       new ReduceAction196(161),
+                       new ReduceAction197(161),
+                       new ReduceAction198(161),
+                       new ReduceAction199(161),
+                       new ReduceAction198(161),
+                       new ReduceAction201(161),
+                       new ReduceAction202(161),
+                       new ReduceAction201(161),
+                       new ReduceAction204(161),
                        new ReduceAction211(162),
                        new ReduceAction212(162),
                        new ReduceAction213(162),
                        new ReduceAction214(162),
                        new ReduceAction215(162),
-                       new ReduceAction214(162),
+                       new ReduceAction216(162),
                        new ReduceAction217(162),
                        new ReduceAction218(162),
-                       new ReduceAction217(162),
+                       new ReduceAction219(162),
                        new ReduceAction220(162),
-                       new ReduceAction227(163),
-                       new ReduceAction228(163),
-                       new ReduceAction229(163),
-                       new ReduceAction230(163),
-                       new ReduceAction231(163),
-                       new ReduceAction232(163),
-                       new ReduceAction233(163),
-                       new ReduceAction234(163),
-                       new ReduceAction235(163),
-                       new ReduceAction236(163),
-                       new ReduceAction182(164),
-                       new ReduceAction182(165),
-                       new ReduceAction179(166),
-                       new ReduceAction180(166),
-                       new ReduceAction181(166),
+                       new ReduceAction166(163),
+                       new ReduceAction166(164),
+                       new ReduceAction163(165),
+                       new ReduceAction164(165),
+                       new ReduceAction165(165),
+                       new ReduceAction163(166),
+                       new ReduceAction164(166),
+                       new ReduceAction165(166),
+                       new ReduceAction166(167),
+                       new ReduceAction166(167),
+                       new ReduceAction176(167),
+                       new ReduceAction177(167),
+                       new ReduceAction178(167),
                        new ReduceAction179(167),
                        new ReduceAction180(167),
                        new ReduceAction181(167),
+                       new ReduceAction182(167),
+                       new ReduceAction183(167),
+                       new ReduceAction184(167),
+                       new ReduceAction185(167),
+                       new ReduceAction186(167),
+                       new ReduceAction166(167),
+                       new ReduceAction166(167),
+                       new ReduceAction166(167),
+                       new ReduceAction166(167),
+                       new ReduceAction166(167),
+                       new ReduceAction204(167),
+                       new ReduceAction166(168),
+                       new ReduceAction166(168),
+                       new ReduceAction176(168),
+                       new ReduceAction177(168),
+                       new ReduceAction178(168),
+                       new ReduceAction179(168),
+                       new ReduceAction180(168),
+                       new ReduceAction181(168),
                        new ReduceAction182(168),
-                       new ReduceAction182(168),
-                       new ReduceAction192(168),
-                       new ReduceAction193(168),
-                       new ReduceAction194(168),
-                       new ReduceAction195(168),
-                       new ReduceAction196(168),
-                       new ReduceAction197(168),
-                       new ReduceAction198(168),
-                       new ReduceAction199(168),
-                       new ReduceAction200(168),
-                       new ReduceAction201(168),
-                       new ReduceAction202(168),
-                       new ReduceAction182(168),
-                       new ReduceAction182(168),
-                       new ReduceAction182(168),
-                       new ReduceAction182(168),
-                       new ReduceAction182(168),
-                       new ReduceAction220(168),
-                       new ReduceAction182(169),
-                       new ReduceAction182(169),
-                       new ReduceAction192(169),
-                       new ReduceAction193(169),
-                       new ReduceAction194(169),
-                       new ReduceAction195(169),
-                       new ReduceAction196(169),
-                       new ReduceAction197(169),
-                       new ReduceAction198(169),
-                       new ReduceAction199(169),
-                       new ReduceAction200(169),
-                       new ReduceAction201(169),
-                       new ReduceAction202(169),
+                       new ReduceAction183(168),
+                       new ReduceAction184(168),
+                       new ReduceAction185(168),
+                       new ReduceAction186(168),
+                       new ReduceAction166(168),
+                       new ReduceAction166(168),
+                       new ReduceAction166(168),
+                       new ReduceAction166(168),
+                       new ReduceAction166(168),
+                       new ReduceAction204(168),
+                       new ReduceAction166(169),
+                       new ReduceAction166(169),
+                       new ReduceAction176(169),
+                       new ReduceAction177(169),
+                       new ReduceAction178(169),
+                       new ReduceAction179(169),
+                       new ReduceAction180(169),
+                       new ReduceAction181(169),
                        new ReduceAction182(169),
-                       new ReduceAction182(169),
-                       new ReduceAction182(169),
-                       new ReduceAction182(169),
-                       new ReduceAction182(169),
-                       new ReduceAction220(169),
-                       new ReduceAction182(170),
-                       new ReduceAction182(170),
-                       new ReduceAction192(170),
-                       new ReduceAction193(170),
-                       new ReduceAction194(170),
-                       new ReduceAction195(170),
-                       new ReduceAction196(170),
-                       new ReduceAction197(170),
-                       new ReduceAction198(170),
-                       new ReduceAction199(170),
-                       new ReduceAction200(170),
-                       new ReduceAction201(170),
-                       new ReduceAction202(170),
-                       new ReduceAction182(170),
-                       new ReduceAction182(170),
+                       new ReduceAction183(169),
+                       new ReduceAction184(169),
+                       new ReduceAction185(169),
+                       new ReduceAction186(169),
+                       new ReduceAction166(169),
+                       new ReduceAction166(169),
+                       new ReduceAction166(169),
+                       new ReduceAction166(169),
+                       new ReduceAction166(169),
+                       new ReduceAction204(169),
+                       new ReduceAction166(170),
+                       new ReduceAction166(170),
+                       new ReduceAction176(170),
+                       new ReduceAction177(170),
+                       new ReduceAction178(170),
+                       new ReduceAction179(170),
+                       new ReduceAction180(170),
+                       new ReduceAction181(170),
                        new ReduceAction182(170),
-                       new ReduceAction182(170),
-                       new ReduceAction182(170),
-                       new ReduceAction220(170),
-                       new ReduceAction182(171),
-                       new ReduceAction182(171),
-                       new ReduceAction192(171),
-                       new ReduceAction193(171),
-                       new ReduceAction194(171),
-                       new ReduceAction195(171),
-                       new ReduceAction196(171),
-                       new ReduceAction197(171),
-                       new ReduceAction198(171),
-                       new ReduceAction199(171),
-                       new ReduceAction200(171),
-                       new ReduceAction201(171),
-                       new ReduceAction202(171),
-                       new ReduceAction182(171),
-                       new ReduceAction182(171),
-                       new ReduceAction182(171),
-                       new ReduceAction182(171),
-                       new ReduceAction182(171),
-                       new ReduceAction220(171),
-                       new ReduceAction339(172),
-                       new ReduceAction340(172),
+                       new ReduceAction183(170),
+                       new ReduceAction184(170),
+                       new ReduceAction185(170),
+                       new ReduceAction186(170),
+                       new ReduceAction166(170),
+                       new ReduceAction166(170),
+                       new ReduceAction166(170),
+                       new ReduceAction166(170),
+                       new ReduceAction166(170),
+                       new ReduceAction204(170),
+                       new ReduceAction325(171),
+                       new ReduceAction326(171),
+                       new ReduceAction327(171),
+                       new ReduceAction328(171),
+                       new ReduceAction329(171),
+                       new ReduceAction338(172),
                        new ReduceAction341(172),
-                       new ReduceAction342(172),
-                       new ReduceAction343(172),
-                       new ReduceAction352(173),
-                       new ReduceAction355(173),
-                       new ReduceAction828(174),
-                       new ReduceAction829(174),
-                       new ReduceAction830(175),
-                       new ReduceAction831(175),
-                       new ReduceAction832(176),
-                       new ReduceAction833(176),
-                       new ReduceAction834(177),
-                       new ReduceAction835(177),
-                       new ReduceAction836(178),
-                       new ReduceAction837(178),
-                       new ReduceAction834(179),
-                       new ReduceAction835(179),
-                       new ReduceAction840(180),
-                       new ReduceAction841(180),
-                       new ReduceAction842(181),
-                       new ReduceAction843(181),
-                       new ReduceAction844(182),
-                       new ReduceAction845(182),
-                       new ReduceAction173(183),
-                       new ReduceAction847(183),
-                       new ReduceAction848(184),
-                       new ReduceAction849(184),
-                       new ReduceAction850(185),
-                       new ReduceAction851(185),
-                       new ReduceAction336(186),
-                       new ReduceAction853(186),
-                       new ReduceAction336(187),
-                       new ReduceAction853(187),
-                       new ReduceAction345(188),
-                       new ReduceAction857(188),
-                       new ReduceAction848(189),
-                       new ReduceAction849(189),
-                       new ReduceAction367(190),
-                       new ReduceAction861(190),
-                       new ReduceAction862(191),
-                       new ReduceAction863(191),
-                       new ReduceAction864(192),
-                       new ReduceAction865(192),
-                       new ReduceAction336(193),
-                       new ReduceAction853(193)
+                       new ReduceAction818(173),
+                       new ReduceAction819(173),
+                       new ReduceAction820(174),
+                       new ReduceAction821(174),
+                       new ReduceAction822(175),
+                       new ReduceAction823(175),
+                       new ReduceAction824(176),
+                       new ReduceAction825(176),
+                       new ReduceAction826(177),
+                       new ReduceAction827(177),
+                       new ReduceAction828(178),
+                       new ReduceAction829(178),
+                       new ReduceAction830(179),
+                       new ReduceAction831(179),
+                       new ReduceAction832(180),
+                       new ReduceAction833(180),
+                       new ReduceAction157(181),
+                       new ReduceAction835(181),
+                       new ReduceAction836(182),
+                       new ReduceAction837(182),
+                       new ReduceAction838(183),
+                       new ReduceAction839(183),
+                       new ReduceAction322(184),
+                       new ReduceAction841(184),
+                       new ReduceAction322(185),
+                       new ReduceAction841(185),
+                       new ReduceAction331(186),
+                       new ReduceAction845(186),
+                       new ReduceAction836(187),
+                       new ReduceAction837(187),
+                       new ReduceAction353(188),
+                       new ReduceAction849(188),
+                       new ReduceAction850(189),
+                       new ReduceAction851(189),
+                       new ReduceAction852(190),
+                       new ReduceAction853(190),
+                       new ReduceAction322(191),
+                       new ReduceAction841(191)
                )
        end
 end
 
-redef class Prod
-       # Location on the first token after the start of a production
-       # So outside the production for epilon production
-       var _first_location: nullable Location
-end
-
-# Find location of production nodes
-# Uses existing token locations to infer location of productions.
-private class ComputeProdLocationVisitor
-       super Visitor
-       # Currenlty visited productions that need a first token
-       var _need_first_prods: Array[Prod] = new Array[Prod]
-
-       # Already visited epsilon productions that waits something after them
-       var _need_after_epsilons: Array[Prod] = new Array[Prod]
-
-       # Location of the last visited token in the current production
-       var _last_location: nullable Location = null
-
-       redef fun visit(n: ANode)
-       do
-               if n isa Token then
-                       var loc = n.location
-                       _last_location = loc
-
-                       # Add a first token to productions that need one
-                       if not _need_first_prods.is_empty then
-                               for no in _need_first_prods do
-                                       no._first_location = loc
-                               end
-                               _need_first_prods.clear
-                       end
-
-                       # Find location for already visited epsilon production that need one
-                       if not _need_after_epsilons.is_empty then
-                               var loco = new Location(loc.file, loc.line_start, loc.line_start, loc.column_start, loc.column_start) 
-                               for no in _need_after_epsilons do
-                                       no.location = loco
-                               end
-                               _need_after_epsilons.clear
-                       end
-               else
-                       assert n isa Prod
-                       _need_first_prods.add(n)
-
-                       n.visit_all(self)
-
-                       var startl = n._first_location
-                       if startl != null then
-                               # Non-epsilon production
-                               var endl = _last_location
-                               assert endl != null
-
-                               n.location = new Location(startl.file, startl.line_start, endl.line_end, startl.column_start, endl.column_end)
-
-                               if not _need_after_epsilons.is_empty then
-                                       var loc = new Location(endl.file, endl.line_end, endl.line_end, endl.column_end, endl.column_end)
-                                       for no in _need_after_epsilons do
-                                               # Epsilon production that finishes the current non-epsilon production
-                                               no.location = loc
-                                       end
-                                       _need_after_epsilons.clear
-                               end
-                       else
-                               # Epsilon production in the middle or that finishes a parent non-epsilon production
-                               _need_after_epsilons.add(n)
-                       end
-               end
-       end
-
-       init do end
-end
-
-# Each reduca action has its own class, this one is the root of the hierarchy.
-private abstract class ReduceAction
-       fun action(p: Parser) is abstract
-       fun concat(l1, l2 : Array[Object]): Array[Object]
-       do
-               if l1.is_empty then return l2
-               l1.append(l2)
-               return l1
-       end
-       var _goto: Int
-       init(g: Int) do _goto = g
-end
-
 private class ReduceAction0
        super ReduceAction
        redef fun action(p: Parser)
@@ -1619,33 +1379,27 @@ private class ReduceAction16
        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 listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist1
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist2
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwmodulenode3 = nodearraylist2
+                                       assert tkwmodulenode3 isa nullable TKwmodule
+                                       var pmodulenamenode4 = nodearraylist4
+                                       assert pmodulenamenode4 isa nullable AModuleName
+                                       var pannotationsnode5 = nodearraylist5
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwmodulenode3,
+                                               pmodulenamenode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1654,36 +1408,29 @@ private class ReduceAction17
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       var pclassdefnode8 = nodearraylist3
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode9.add(pclassdefnode5)
-                                       end
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
+                                       var pvisibilitynode2 = nodearraylist3
+                                       assert pvisibilitynode2 isa nullable AVisibility
+                                       var tkwimportnode3 = nodearraylist4
+                                       assert tkwimportnode3 isa nullable TKwimport
+                                       var pmodulenamenode4 = nodearraylist6
+                                       assert pmodulenamenode4 isa nullable AModuleName
+                                       var pannotationsnode5 = nodearraylist7
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               pmodulenamenode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1692,37 +1439,25 @@ private class ReduceAction18
        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 listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist3
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
+                                       var pvisibilitynode2 = nodearraylist3
+                                       assert pvisibilitynode2 isa nullable AVisibility
+                                       var tkwimportnode3 = nodearraylist4
+                                       assert tkwimportnode3 isa nullable TKwimport
+                                       var tkwendnode4 = nodearraylist6
+                                       assert tkwendnode4 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode3,
+                                               tkwendnode4
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1731,40 +1466,9 @@ private class ReduceAction19
        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 listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist4
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
+                                       var pclassdefnode1 = nodearraylist1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1773,615 +1477,21 @@ private class ReduceAction20
        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 listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist3
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction21
-       super 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 listnode5 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist4
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction22
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist4
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction23
-       super 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 listnode6 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist5
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction24
-       super 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 listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist2
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist3
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       listnode10 = concat(listnode10, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction25
-       super 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 listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       var pclassdefnode9 = nodearraylist4
-                                       assert pclassdefnode9 isa nullable AClassdef
-                                       listnode10 = concat(listnode10, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode10.add(pclassdefnode6)
-                                       end
-                                       if pclassdefnode9 != null then
-                                               listnode10.add(pclassdefnode9)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction26
-       super 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 listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist4
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction27
-       super 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 listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist5
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction28
-       super 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 listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist3
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist4
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction29
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode8 = nodearraylist4
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var pclassdefnode7: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode9
-                                       )
-                                       var pclassdefnode10 = nodearraylist5
-                                       assert pclassdefnode10 isa nullable AClassdef
-                                       listnode11 = concat(listnode11, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode11.add(pclassdefnode7)
-                                       end
-                                       if pclassdefnode10 != null then
-                                               listnode11.add(pclassdefnode10)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode11
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction30
-       super 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 listnode6 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode7 = nodearraylist3
-                                       assert listnode7 isa Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode9 = nodearraylist4
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var pclassdefnode8: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode10
-                                       )
-                                       var pclassdefnode11 = nodearraylist5
-                                       assert pclassdefnode11 isa nullable AClassdef
-                                       listnode12 = concat(listnode12, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode12.add(pclassdefnode8)
-                                       end
-                                       if pclassdefnode11 != null then
-                                               listnode12.add(pclassdefnode11)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode12
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction31
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode9 = nodearraylist5
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var pclassdefnode8: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode10
-                                       )
-                                       var pclassdefnode11 = nodearraylist6
-                                       assert pclassdefnode11 isa nullable AClassdef
-                                       listnode12 = concat(listnode12, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode12.add(pclassdefnode8)
-                                       end
-                                       if pclassdefnode11 != null then
-                                               listnode12.add(pclassdefnode11)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode12
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction32
-       super 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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwmodulenode3 = nodearraylist2
-                                       assert tkwmodulenode3 isa nullable TKwmodule
-                                       var pmodulenamenode4 = nodearraylist4
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pannotationsnode5 = nodearraylist5
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
-                                               pdocnode2,
-                                               tkwmodulenode3,
-                                               pmodulenamenode4,
-                                               pannotationsnode5
-                                       )
-                                       node_list = pmoduledeclnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction33
-       super 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 pvisibilitynode2 = nodearraylist3
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist4
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var pmodulenamenode4 = nodearraylist6
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pannotationsnode5 = nodearraylist7
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               pmodulenamenode4,
-                                               pannotationsnode5
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction34
-       super 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 pvisibilitynode2 = nodearraylist3
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist4
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var tkwendnode4 = nodearraylist6
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               tkwendnode4
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
+                                       end
+                                       var pclassdefnode1: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode3
                                        )
-                                       node_list = pimportnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction35
+private class ReduceAction21
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2400,7 +1510,7 @@ private class ReduceAction35
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction36
+private class ReduceAction22
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2409,7 +1519,7 @@ private class ReduceAction36
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction37
+private class ReduceAction23
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2419,7 +1529,7 @@ private class ReduceAction37
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction38
+private class ReduceAction24
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2436,7 +1546,7 @@ private class ReduceAction38
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction40
+private class ReduceAction26
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2485,7 +1595,7 @@ private class ReduceAction40
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction41
+private class ReduceAction27
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2545,7 +1655,7 @@ private class ReduceAction41
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction42
+private class ReduceAction28
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2597,7 +1707,7 @@ private class ReduceAction42
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction43
+private class ReduceAction29
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2660,7 +1770,7 @@ private class ReduceAction43
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction44
+private class ReduceAction30
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2713,7 +1823,7 @@ private class ReduceAction44
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction45
+private class ReduceAction31
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2777,7 +1887,7 @@ private class ReduceAction45
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction46
+private class ReduceAction32
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2833,7 +1943,7 @@ private class ReduceAction46
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction47
+private class ReduceAction33
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2900,7 +2010,7 @@ private class ReduceAction47
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction48
+private class ReduceAction34
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2953,7 +2063,7 @@ private class ReduceAction48
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction49
+private class ReduceAction35
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3017,7 +2127,7 @@ private class ReduceAction49
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction50
+private class ReduceAction36
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3073,7 +2183,7 @@ private class ReduceAction50
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction51
+private class ReduceAction37
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3140,7 +2250,7 @@ private class ReduceAction51
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction52
+private class ReduceAction38
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3197,7 +2307,7 @@ private class ReduceAction52
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction53
+private class ReduceAction39
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3265,7 +2375,7 @@ private class ReduceAction53
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction54
+private class ReduceAction40
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3325,7 +2435,7 @@ private class ReduceAction54
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction55
+private class ReduceAction41
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3396,7 +2506,7 @@ private class ReduceAction55
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction57
+private class ReduceAction43
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3407,7 +2517,7 @@ private class ReduceAction57
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction58
+private class ReduceAction44
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3422,7 +2532,7 @@ private class ReduceAction58
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction59
+private class ReduceAction45
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3441,7 +2551,7 @@ private class ReduceAction59
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction60
+private class ReduceAction46
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3456,7 +2566,7 @@ private class ReduceAction60
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction61
+private class ReduceAction47
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3471,23 +2581,7 @@ private class ReduceAction61
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction62
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwexternnode2 = nodearraylist1
-                                       assert tkwexternnode2 isa nullable TKwextern
-                                       var pclasskindnode1: nullable AExternClasskind = new AExternClasskind.init_aexternclasskind(
-                                               tkwexternnode2,
-                                               null
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction63
+private class ReduceAction48
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3506,7 +2600,7 @@ private class ReduceAction63
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction64
+private class ReduceAction49
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3525,7 +2619,7 @@ private class ReduceAction64
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction65
+private class ReduceAction50
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3548,7 +2642,7 @@ private class ReduceAction65
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction66
+private class ReduceAction51
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3558,7 +2652,7 @@ private class ReduceAction66
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction67
+private class ReduceAction52
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3571,7 +2665,7 @@ private class ReduceAction67
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction68
+private class ReduceAction53
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3591,7 +2685,7 @@ private class ReduceAction68
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction69
+private class ReduceAction54
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3614,7 +2708,7 @@ private class ReduceAction69
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction70
+private class ReduceAction55
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3639,7 +2733,7 @@ private class ReduceAction70
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction71
+private class ReduceAction56
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3651,7 +2745,7 @@ private class ReduceAction71
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction72
+private class ReduceAction57
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3693,7 +2787,7 @@ private class ReduceAction72
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction73
+private class ReduceAction58
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3738,13 +2832,11 @@ private class ReduceAction73
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction74
+private class ReduceAction59
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -3764,27 +2856,27 @@ private class ReduceAction74
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               null,
-                                               pexprnode9
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction75
+private class ReduceAction60
        super 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
@@ -3804,8 +2896,6 @@ private class ReduceAction75
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
                                        var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -3813,13 +2903,13 @@ private class ReduceAction75
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               pannotationsnode8
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction76
+private class ReduceAction61
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3844,20 +2934,53 @@ private class ReduceAction76
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
+                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
                                                tkwmethnode5,
                                                pmethidnode6,
-                                               psignaturenode7,
-                                               null
+                                               psignaturenode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction77
+private class ReduceAction62
+       super 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 ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AInternNewPropdef = new AInternNewPropdef.init_ainternnewpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction63
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3876,17 +2999,17 @@ private class ReduceAction77
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
                                        var pmethidnode6 = nodearraylist5
                                        assert pmethidnode6 isa nullable AMethid
                                        var psignaturenode7 = nodearraylist6
                                        assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
+                                       var ppropdefnode1: nullable AInternNewPropdef = new AInternNewPropdef.init_ainternnewpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
+                                               tkwnewnode5,
                                                pmethidnode6,
                                                psignaturenode7
                                        )
@@ -3894,7 +3017,7 @@ private class ReduceAction77
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction78
+private class ReduceAction64
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3943,7 +3066,7 @@ private class ReduceAction78
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction79
+private class ReduceAction65
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3987,7 +3110,7 @@ private class ReduceAction79
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction80
+private class ReduceAction66
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4027,7 +3150,7 @@ private class ReduceAction80
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction81
+private class ReduceAction67
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4070,7 +3193,7 @@ private class ReduceAction81
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction82
+private class ReduceAction68
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4113,7 +3236,7 @@ private class ReduceAction82
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction83
+private class ReduceAction69
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4159,7 +3282,7 @@ private class ReduceAction83
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction84
+private class ReduceAction70
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4204,7 +3327,7 @@ private class ReduceAction84
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction85
+private class ReduceAction71
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4252,7 +3375,7 @@ private class ReduceAction85
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction86
+private class ReduceAction72
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4300,7 +3423,7 @@ private class ReduceAction86
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction87
+private class ReduceAction73
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4351,7 +3474,7 @@ private class ReduceAction87
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction88
+private class ReduceAction74
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4394,7 +3517,7 @@ private class ReduceAction88
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction89
+private class ReduceAction75
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4440,7 +3563,7 @@ private class ReduceAction89
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction90
+private class ReduceAction76
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4488,7 +3611,7 @@ private class ReduceAction90
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction91
+private class ReduceAction77
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4539,7 +3662,7 @@ private class ReduceAction91
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction92
+private class ReduceAction78
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4578,7 +3701,7 @@ private class ReduceAction92
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction93
+private class ReduceAction79
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4620,7 +3743,7 @@ private class ReduceAction93
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction94
+private class ReduceAction80
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4662,7 +3785,7 @@ private class ReduceAction94
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction95
+private class ReduceAction81
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4707,7 +3830,7 @@ private class ReduceAction95
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction96
+private class ReduceAction82
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4746,7 +3869,7 @@ private class ReduceAction96
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction97
+private class ReduceAction83
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4792,7 +3915,7 @@ private class ReduceAction97
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction98
+private class ReduceAction84
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4841,7 +3964,7 @@ private class ReduceAction98
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction99
+private class ReduceAction85
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4885,7 +4008,7 @@ private class ReduceAction99
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction100
+private class ReduceAction86
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4932,7 +4055,7 @@ private class ReduceAction100
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction101
+private class ReduceAction87
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4944,7 +4067,7 @@ private class ReduceAction101
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction102
+private class ReduceAction88
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4958,7 +4081,7 @@ private class ReduceAction102
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction105
+private class ReduceAction91
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4971,7 +4094,7 @@ private class ReduceAction105
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction106
+private class ReduceAction92
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4991,7 +4114,7 @@ private class ReduceAction106
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction107
+private class ReduceAction93
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5014,7 +4137,7 @@ private class ReduceAction107
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction108
+private class ReduceAction94
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5024,7 +4147,7 @@ private class ReduceAction108
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction109
+private class ReduceAction95
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5040,7 +4163,7 @@ private class ReduceAction109
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction110
+private class ReduceAction96
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5056,7 +4179,7 @@ private class ReduceAction110
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction111
+private class ReduceAction97
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5072,7 +4195,7 @@ private class ReduceAction111
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction112
+private class ReduceAction98
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5087,7 +4210,7 @@ private class ReduceAction112
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction113
+private class ReduceAction99
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5102,7 +4225,7 @@ private class ReduceAction113
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction114
+private class ReduceAction100
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5117,7 +4240,7 @@ private class ReduceAction114
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction115
+private class ReduceAction101
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5132,7 +4255,7 @@ private class ReduceAction115
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction116
+private class ReduceAction102
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5147,7 +4270,7 @@ private class ReduceAction116
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction117
+private class ReduceAction103
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5162,7 +4285,7 @@ private class ReduceAction117
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction118
+private class ReduceAction104
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5177,7 +4300,7 @@ private class ReduceAction118
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction119
+private class ReduceAction105
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5192,7 +4315,7 @@ private class ReduceAction119
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction120
+private class ReduceAction106
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5207,7 +4330,7 @@ private class ReduceAction120
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction121
+private class ReduceAction107
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5222,7 +4345,7 @@ private class ReduceAction121
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction122
+private class ReduceAction108
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5237,7 +4360,7 @@ private class ReduceAction122
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction123
+private class ReduceAction109
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5252,7 +4375,7 @@ private class ReduceAction123
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction124
+private class ReduceAction110
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5267,7 +4390,7 @@ private class ReduceAction124
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction125
+private class ReduceAction111
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5282,7 +4405,7 @@ private class ReduceAction125
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction126
+private class ReduceAction112
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5301,7 +4424,7 @@ private class ReduceAction126
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction127
+private class ReduceAction113
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5316,7 +4439,7 @@ private class ReduceAction127
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction128
+private class ReduceAction114
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5335,7 +4458,7 @@ private class ReduceAction128
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction129
+private class ReduceAction115
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5358,7 +4481,7 @@ private class ReduceAction129
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction130
+private class ReduceAction116
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5389,7 +4512,7 @@ private class ReduceAction130
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction131
+private class ReduceAction117
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5417,7 +4540,7 @@ private class ReduceAction131
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction132
+private class ReduceAction118
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5437,7 +4560,7 @@ private class ReduceAction132
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction133
+private class ReduceAction119
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5454,7 +4577,7 @@ private class ReduceAction133
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction134
+private class ReduceAction120
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5470,7 +4593,7 @@ private class ReduceAction134
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction135
+private class ReduceAction121
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5490,7 +4613,7 @@ private class ReduceAction135
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction137
+private class ReduceAction123
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5503,7 +4626,7 @@ private class ReduceAction137
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction138
+private class ReduceAction124
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5524,7 +4647,7 @@ private class ReduceAction138
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction139
+private class ReduceAction125
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5545,7 +4668,7 @@ private class ReduceAction139
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction140
+private class ReduceAction126
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5569,7 +4692,7 @@ private class ReduceAction140
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction141
+private class ReduceAction127
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5593,7 +4716,7 @@ private class ReduceAction141
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction142
+private class ReduceAction128
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5620,23 +4743,7 @@ private class ReduceAction142
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction143
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode3 = nodearraylist1
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               null,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction144
+private class ReduceAction129
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5660,7 +4767,7 @@ private class ReduceAction144
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction145
+private class ReduceAction130
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5688,7 +4795,7 @@ private class ReduceAction145
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction147
+private class ReduceAction132
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5701,7 +4808,7 @@ private class ReduceAction147
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction148
+private class ReduceAction133
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5712,7 +4819,7 @@ private class ReduceAction148
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction150
+private class ReduceAction135
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5727,7 +4834,7 @@ private class ReduceAction150
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction151
+private class ReduceAction136
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5742,28 +4849,7 @@ private class ReduceAction151
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction152
-       super 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 ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var pmethidnode4 = nodearraylist3
-                                       assert pmethidnode4 isa nullable AMethid
-                                       var pexterncallnode1: nullable AFullPropExternCall = new AFullPropExternCall.init_afullpropexterncall(
-                                               ptypenode2,
-                                               null,
-                                               pmethidnode4
-                                       )
-                                       node_list = pexterncallnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction153
+private class ReduceAction137
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5786,7 +4872,7 @@ private class ReduceAction153
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction154
+private class ReduceAction138
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5801,11 +4887,12 @@ private class ReduceAction154
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction155
+private class ReduceAction139
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -5816,13 +4903,15 @@ private class ReduceAction155
                                        var nodearraylist1 = p.pop
                                        var ptypenode2 = nodearraylist1
                                        assert ptypenode2 isa nullable AType
-                                       var tkwasnode4 = nodearraylist2
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var tkwasnode4 = nodearraylist3
                                        assert tkwasnode4 isa nullable TKwas
-                                       var ptypenode5 = nodearraylist6
+                                       var ptypenode5 = nodearraylist7
                                        assert ptypenode5 isa nullable AType
                                        var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
                                                ptypenode2,
-                                               null,
+                                               tdotnode3,
                                                tkwasnode4,
                                                ptypenode5
                                        )
@@ -5830,15 +4919,11 @@ private class ReduceAction155
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction156
+private class ReduceAction140
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -5850,7 +4935,7 @@ private class ReduceAction156
                                        assert tdotnode3 isa nullable TDot
                                        var tkwasnode4 = nodearraylist3
                                        assert tkwasnode4 isa nullable TKwas
-                                       var ptypenode5 = nodearraylist7
+                                       var ptypenode5 = nodearraylist5
                                        assert ptypenode5 isa nullable AType
                                        var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
                                                ptypenode2,
@@ -5862,20 +4947,25 @@ private class ReduceAction156
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction157
+private class ReduceAction141
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var ptypenode2 = nodearraylist1
                                        assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
+                                       var tkwasnode3 = nodearraylist3
                                        assert tkwasnode3 isa nullable TKwas
-                                       var tkwnullablenode4 = nodearraylist4
+                                       var tkwnullablenode4 = nodearraylist7
                                        assert tkwnullablenode4 isa nullable TKwnullable
                                        var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
                                                ptypenode2,
@@ -5886,7 +4976,7 @@ private class ReduceAction157
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction158
+private class ReduceAction142
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5911,11 +5001,16 @@ private class ReduceAction158
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction159
+private class ReduceAction143
        super 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
@@ -5924,11 +5019,11 @@ private class ReduceAction159
                                        var nodearraylist1 = p.pop
                                        var ptypenode2 = nodearraylist1
                                        assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
+                                       var tkwasnode3 = nodearraylist3
                                        assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist4
+                                       var tkwnotnode4 = nodearraylist7
                                        assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullablenode5 = nodearraylist6
+                                       var tkwnullablenode5 = nodearraylist9
                                        assert tkwnullablenode5 isa nullable TKwnullable
                                        var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
                                                ptypenode2,
@@ -5940,7 +5035,7 @@ private class ReduceAction159
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction160
+private class ReduceAction144
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5970,7 +5065,7 @@ private class ReduceAction160
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction162
+private class ReduceAction146
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5981,16 +5076,18 @@ private class ReduceAction162
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction163
+private class ReduceAction147
        super 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 tkwinnode2 = nodearraylist1
                                        assert tkwinnode2 isa nullable TKwin
-                                       var tstringnode3 = nodearraylist2
+                                       var tstringnode3 = nodearraylist3
                                        assert tstringnode3 isa nullable TString
                                        var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
                                                tkwinnode2,
@@ -6000,7 +5097,7 @@ private class ReduceAction163
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction164
+private class ReduceAction148
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6016,7 +5113,7 @@ private class ReduceAction164
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction165
+private class ReduceAction149
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6035,7 +5132,7 @@ private class ReduceAction165
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction166
+private class ReduceAction150
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6046,7 +5143,7 @@ private class ReduceAction166
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction168
+private class ReduceAction152
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6058,7 +5155,7 @@ private class ReduceAction168
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction169
+private class ReduceAction153
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6080,7 +5177,7 @@ private class ReduceAction169
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction170
+private class ReduceAction154
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6105,7 +5202,7 @@ private class ReduceAction170
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction171
+private class ReduceAction155
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6135,7 +5232,7 @@ private class ReduceAction171
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction172
+private class ReduceAction156
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6168,7 +5265,7 @@ private class ReduceAction172
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction173
+private class ReduceAction157
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6183,7 +5280,7 @@ private class ReduceAction173
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction174
+private class ReduceAction158
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6202,7 +5299,7 @@ private class ReduceAction174
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction175
+private class ReduceAction159
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6215,7 +5312,7 @@ private class ReduceAction175
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction179
+private class ReduceAction163
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6227,7 +5324,7 @@ private class ReduceAction179
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction180
+private class ReduceAction164
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6245,7 +5342,7 @@ private class ReduceAction180
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction181
+private class ReduceAction165
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6262,7 +5359,7 @@ private class ReduceAction181
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction182
+private class ReduceAction166
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6273,7 +5370,7 @@ private class ReduceAction182
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction183
+private class ReduceAction167
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6293,7 +5390,7 @@ private class ReduceAction183
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction184
+private class ReduceAction168
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6317,7 +5414,7 @@ private class ReduceAction184
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction185
+private class ReduceAction169
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6338,7 +5435,7 @@ private class ReduceAction185
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction186
+private class ReduceAction170
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6363,7 +5460,7 @@ private class ReduceAction186
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction187
+private class ReduceAction171
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6387,7 +5484,7 @@ private class ReduceAction187
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction188
+private class ReduceAction172
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6415,7 +5512,7 @@ private class ReduceAction188
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction192
+private class ReduceAction176
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6431,7 +5528,7 @@ private class ReduceAction192
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction193
+private class ReduceAction177
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6450,7 +5547,7 @@ private class ReduceAction193
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction194
+private class ReduceAction178
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6467,7 +5564,7 @@ private class ReduceAction194
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction195
+private class ReduceAction179
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6487,7 +5584,7 @@ private class ReduceAction195
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction196
+private class ReduceAction180
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6507,7 +5604,7 @@ private class ReduceAction196
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction197
+private class ReduceAction181
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6530,7 +5627,7 @@ private class ReduceAction197
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction198
+private class ReduceAction182
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6545,7 +5642,7 @@ private class ReduceAction198
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction199
+private class ReduceAction183
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6562,7 +5659,7 @@ private class ReduceAction199
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction200
+private class ReduceAction184
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6582,7 +5679,7 @@ private class ReduceAction200
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction201
+private class ReduceAction185
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6602,7 +5699,7 @@ private class ReduceAction201
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction202
+private class ReduceAction186
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6625,7 +5722,7 @@ private class ReduceAction202
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction209
+private class ReduceAction193
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6650,7 +5747,7 @@ private class ReduceAction209
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction210
+private class ReduceAction194
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6671,7 +5768,7 @@ private class ReduceAction210
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction211
+private class ReduceAction195
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6694,7 +5791,7 @@ private class ReduceAction211
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction212
+private class ReduceAction196
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6719,7 +5816,7 @@ private class ReduceAction212
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction213
+private class ReduceAction197
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6740,7 +5837,7 @@ private class ReduceAction213
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction214
+private class ReduceAction198
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6766,7 +5863,7 @@ private class ReduceAction214
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction215
+private class ReduceAction199
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6793,7 +5890,7 @@ private class ReduceAction215
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction217
+private class ReduceAction201
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6815,7 +5912,7 @@ private class ReduceAction217
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction218
+private class ReduceAction202
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6838,7 +5935,7 @@ private class ReduceAction218
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction220
+private class ReduceAction204
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6866,7 +5963,7 @@ private class ReduceAction220
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction221
+private class ReduceAction205
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6885,7 +5982,7 @@ private class ReduceAction221
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction222
+private class ReduceAction206
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6902,7 +5999,7 @@ private class ReduceAction222
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction223
+private class ReduceAction207
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6928,7 +6025,7 @@ private class ReduceAction223
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction224
+private class ReduceAction208
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6957,7 +6054,7 @@ private class ReduceAction224
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction225
+private class ReduceAction209
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6990,7 +6087,7 @@ private class ReduceAction225
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction226
+private class ReduceAction210
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7026,7 +6123,7 @@ private class ReduceAction226
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction227
+private class ReduceAction211
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7056,7 +6153,7 @@ private class ReduceAction227
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction228
+private class ReduceAction212
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7082,7 +6179,7 @@ private class ReduceAction228
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction229
+private class ReduceAction213
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7115,7 +6212,7 @@ private class ReduceAction229
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction230
+private class ReduceAction214
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7144,7 +6241,7 @@ private class ReduceAction230
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction231
+private class ReduceAction215
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7171,7 +6268,7 @@ private class ReduceAction231
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction232
+private class ReduceAction216
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7201,7 +6298,7 @@ private class ReduceAction232
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction233
+private class ReduceAction217
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7227,7 +6324,7 @@ private class ReduceAction233
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction234
+private class ReduceAction218
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7260,7 +6357,7 @@ private class ReduceAction234
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction235
+private class ReduceAction219
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7289,7 +6386,7 @@ private class ReduceAction235
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction236
+private class ReduceAction220
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7316,7 +6413,7 @@ private class ReduceAction236
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction237
+private class ReduceAction221
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7331,7 +6428,7 @@ private class ReduceAction237
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction238
+private class ReduceAction222
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7346,7 +6443,7 @@ private class ReduceAction238
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction239
+private class ReduceAction223
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7369,7 +6466,7 @@ private class ReduceAction239
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction240
+private class ReduceAction224
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7389,7 +6486,7 @@ private class ReduceAction240
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction241
+private class ReduceAction225
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7420,7 +6517,7 @@ private class ReduceAction241
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction242
+private class ReduceAction226
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7447,7 +6544,7 @@ private class ReduceAction242
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction243
+private class ReduceAction227
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7478,7 +6575,7 @@ private class ReduceAction243
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction244
+private class ReduceAction228
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7505,7 +6602,7 @@ private class ReduceAction244
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction245
+private class ReduceAction229
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7533,7 +6630,7 @@ private class ReduceAction245
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction248
+private class ReduceAction232
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7556,7 +6653,7 @@ private class ReduceAction248
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction249
+private class ReduceAction233
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7576,7 +6673,7 @@ private class ReduceAction249
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction250
+private class ReduceAction234
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7609,7 +6706,7 @@ private class ReduceAction250
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction251
+private class ReduceAction235
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7639,7 +6736,7 @@ private class ReduceAction251
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction252
+private class ReduceAction236
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7685,7 +6782,7 @@ private class ReduceAction252
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction253
+private class ReduceAction237
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7727,7 +6824,7 @@ private class ReduceAction253
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction254
+private class ReduceAction238
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7770,7 +6867,7 @@ private class ReduceAction254
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction255
+private class ReduceAction239
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7809,7 +6906,7 @@ private class ReduceAction255
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction256
+private class ReduceAction240
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7834,7 +6931,7 @@ private class ReduceAction256
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction257
+private class ReduceAction241
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7862,7 +6959,7 @@ private class ReduceAction257
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction258
+private class ReduceAction242
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7883,7 +6980,7 @@ private class ReduceAction258
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction259
+private class ReduceAction243
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7907,7 +7004,7 @@ private class ReduceAction259
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction260
+private class ReduceAction244
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7919,7 +7016,7 @@ private class ReduceAction260
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction263
+private class ReduceAction247
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7959,7 +7056,7 @@ private class ReduceAction263
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction265
+private class ReduceAction249
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7980,7 +7077,7 @@ private class ReduceAction265
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction266
+private class ReduceAction250
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8001,7 +7098,7 @@ private class ReduceAction266
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction267
+private class ReduceAction251
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8023,7 +7120,7 @@ private class ReduceAction267
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction268
+private class ReduceAction252
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8044,7 +7141,7 @@ private class ReduceAction268
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction270
+private class ReduceAction254
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8064,7 +7161,7 @@ private class ReduceAction270
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction272
+private class ReduceAction256
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8085,7 +7182,7 @@ private class ReduceAction272
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction273
+private class ReduceAction257
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8106,7 +7203,7 @@ private class ReduceAction273
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction274
+private class ReduceAction258
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8127,7 +7224,7 @@ private class ReduceAction274
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction275
+private class ReduceAction259
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8148,7 +7245,7 @@ private class ReduceAction275
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction276
+private class ReduceAction260
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8169,7 +7266,7 @@ private class ReduceAction276
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction277
+private class ReduceAction261
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8190,7 +7287,7 @@ private class ReduceAction277
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction278
+private class ReduceAction262
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8211,7 +7308,7 @@ private class ReduceAction278
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction279
+private class ReduceAction263
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8232,7 +7329,7 @@ private class ReduceAction279
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction280
+private class ReduceAction264
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8253,7 +7350,7 @@ private class ReduceAction280
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction281
+private class ReduceAction265
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8274,7 +7371,7 @@ private class ReduceAction281
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction283
+private class ReduceAction267
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8295,7 +7392,7 @@ private class ReduceAction283
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction284
+private class ReduceAction268
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8316,7 +7413,7 @@ private class ReduceAction284
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction286
+private class ReduceAction270
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8337,7 +7434,7 @@ private class ReduceAction286
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction287
+private class ReduceAction271
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8358,7 +7455,7 @@ private class ReduceAction287
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction288
+private class ReduceAction272
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8379,7 +7476,7 @@ private class ReduceAction288
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction290
+private class ReduceAction274
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8399,7 +7496,7 @@ private class ReduceAction290
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction291
+private class ReduceAction275
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8419,7 +7516,7 @@ private class ReduceAction291
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction293
+private class ReduceAction277
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8444,7 +7541,7 @@ private class ReduceAction293
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction294
+private class ReduceAction278
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8470,7 +7567,7 @@ private class ReduceAction294
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction295
+private class ReduceAction279
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8492,7 +7589,7 @@ private class ReduceAction295
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction296
+private class ReduceAction280
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8514,7 +7611,7 @@ private class ReduceAction296
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction297
+private class ReduceAction281
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8532,7 +7629,7 @@ private class ReduceAction297
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction303
+private class ReduceAction287
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8551,7 +7648,7 @@ private class ReduceAction303
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction304
+private class ReduceAction288
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8581,7 +7678,7 @@ private class ReduceAction304
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction305
+private class ReduceAction289
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8617,7 +7714,7 @@ private class ReduceAction305
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction306
+private class ReduceAction290
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8653,7 +7750,7 @@ private class ReduceAction306
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction307
+private class ReduceAction291
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8672,7 +7769,7 @@ private class ReduceAction307
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction308
+private class ReduceAction292
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8691,7 +7788,7 @@ private class ReduceAction308
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction309
+private class ReduceAction293
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8710,7 +7807,7 @@ private class ReduceAction309
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction310
+private class ReduceAction294
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8729,7 +7826,7 @@ private class ReduceAction310
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction311
+private class ReduceAction295
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8748,7 +7845,7 @@ private class ReduceAction311
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction312
+private class ReduceAction296
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8759,7 +7856,7 @@ private class ReduceAction312
                                        assert tnumbernode2 isa nullable TNumber
                                        var pannotationsnode3 = nodearraylist2
                                        assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
+                                       var pexprnode1: nullable ADecIntExpr = new ADecIntExpr.init_adecintexpr(
                                                tnumbernode2,
                                                pannotationsnode3
                                        )
@@ -8767,7 +7864,26 @@ private class ReduceAction312
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction313
+private class ReduceAction297
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var thexnumbernode2 = nodearraylist1
+                                       assert thexnumbernode2 isa nullable THexNumber
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AHexIntExpr = new AHexIntExpr.init_ahexintexpr(
+                                               thexnumbernode2,
+                                               pannotationsnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction298
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8786,7 +7902,7 @@ private class ReduceAction313
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction314
+private class ReduceAction299
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8805,7 +7921,7 @@ private class ReduceAction314
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction315
+private class ReduceAction300
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8824,7 +7940,7 @@ private class ReduceAction315
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction317
+private class ReduceAction302
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8853,7 +7969,7 @@ private class ReduceAction317
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction318
+private class ReduceAction303
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8889,7 +8005,7 @@ private class ReduceAction318
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction319
+private class ReduceAction304
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8930,7 +8046,40 @@ private class ReduceAction319
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction320
+private class ReduceAction305
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode5 = nodearraylist6
+                                       assert tkwnotnode5 isa nullable TKwnot
+                                       var tkwnullnode6 = nodearraylist8
+                                       assert tkwnullnode6 isa nullable TKwnull
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               null,
+                                               tkwnotnode5,
+                                               tkwnullnode6,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction306
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8957,7 +8106,7 @@ private class ReduceAction320
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction321
+private class ReduceAction307
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8988,7 +8137,7 @@ private class ReduceAction321
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction322
+private class ReduceAction308
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9010,7 +8159,7 @@ private class ReduceAction322
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction323
+private class ReduceAction309
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9026,7 +8175,7 @@ private class ReduceAction323
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction324
+private class ReduceAction310
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9041,7 +8190,7 @@ private class ReduceAction324
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction327
+private class ReduceAction313
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9056,7 +8205,7 @@ private class ReduceAction327
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction328
+private class ReduceAction314
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9071,7 +8220,7 @@ private class ReduceAction328
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction329
+private class ReduceAction315
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9096,7 +8245,7 @@ private class ReduceAction329
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction330
+private class ReduceAction316
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9127,7 +8276,7 @@ private class ReduceAction330
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction331
+private class ReduceAction317
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9138,7 +8287,7 @@ private class ReduceAction331
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction333
+private class ReduceAction319
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9161,7 +8310,7 @@ private class ReduceAction333
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction334
+private class ReduceAction320
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9196,7 +8345,7 @@ private class ReduceAction334
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction335
+private class ReduceAction321
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9216,7 +8365,7 @@ private class ReduceAction335
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction336
+private class ReduceAction322
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9231,7 +8380,7 @@ private class ReduceAction336
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction337
+private class ReduceAction323
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9250,7 +8399,7 @@ private class ReduceAction337
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction339
+private class ReduceAction325
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9272,7 +8421,7 @@ private class ReduceAction339
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction340
+private class ReduceAction326
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9297,7 +8446,7 @@ private class ReduceAction340
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction341
+private class ReduceAction327
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9330,7 +8479,7 @@ private class ReduceAction341
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction342
+private class ReduceAction328
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9366,7 +8515,7 @@ private class ReduceAction342
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction343
+private class ReduceAction329
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9392,7 +8541,7 @@ private class ReduceAction343
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction344
+private class ReduceAction330
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9405,7 +8554,7 @@ private class ReduceAction344
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction345
+private class ReduceAction331
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9420,7 +8569,7 @@ private class ReduceAction345
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction346
+private class ReduceAction332
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9439,7 +8588,7 @@ private class ReduceAction346
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction347
+private class ReduceAction333
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9452,7 +8601,7 @@ private class ReduceAction347
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction348
+private class ReduceAction334
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9467,7 +8616,7 @@ private class ReduceAction348
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction349
+private class ReduceAction335
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9482,7 +8631,7 @@ private class ReduceAction349
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction351
+private class ReduceAction337
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9497,7 +8646,7 @@ private class ReduceAction351
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction352
+private class ReduceAction338
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9512,7 +8661,7 @@ private class ReduceAction352
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction353
+private class ReduceAction339
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9527,7 +8676,7 @@ private class ReduceAction353
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction354
+private class ReduceAction340
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9542,7 +8691,7 @@ private class ReduceAction354
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction355
+private class ReduceAction341
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9557,7 +8706,7 @@ private class ReduceAction355
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction356
+private class ReduceAction342
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9583,7 +8732,7 @@ private class ReduceAction356
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction357
+private class ReduceAction343
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9605,7 +8754,7 @@ private class ReduceAction357
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction358
+private class ReduceAction344
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9618,7 +8767,7 @@ private class ReduceAction358
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction360
+private class ReduceAction346
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9637,7 +8786,7 @@ private class ReduceAction360
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction363
+private class ReduceAction349
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9663,7 +8812,7 @@ private class ReduceAction363
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction365
+private class ReduceAction351
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9683,7 +8832,7 @@ private class ReduceAction365
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction366
+private class ReduceAction352
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9697,7 +8846,7 @@ private class ReduceAction366
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction367
+private class ReduceAction353
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9712,7 +8861,7 @@ private class ReduceAction367
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction368
+private class ReduceAction354
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9734,7 +8883,7 @@ private class ReduceAction368
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction369
+private class ReduceAction355
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9752,7 +8901,7 @@ private class ReduceAction369
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction370
+private class ReduceAction356
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9774,7 +8923,7 @@ private class ReduceAction370
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction371
+private class ReduceAction357
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9796,7 +8945,7 @@ private class ReduceAction371
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction372
+private class ReduceAction358
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9822,7 +8971,7 @@ private class ReduceAction372
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction373
+private class ReduceAction359
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9839,7 +8988,7 @@ private class ReduceAction373
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction374
+private class ReduceAction360
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9860,7 +9009,7 @@ private class ReduceAction374
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction375
+private class ReduceAction361
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9878,7 +9027,7 @@ private class ReduceAction375
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction377
+private class ReduceAction363
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9889,7 +9038,7 @@ private class ReduceAction377
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction378
+private class ReduceAction364
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9901,7 +9050,7 @@ private class ReduceAction378
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction379
+private class ReduceAction365
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9914,7 +9063,7 @@ private class ReduceAction379
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction381
+private class ReduceAction367
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9925,7 +9074,7 @@ private class ReduceAction381
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction382
+private class ReduceAction368
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9937,7 +9086,7 @@ private class ReduceAction382
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction383
+private class ReduceAction369
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9950,7 +9099,7 @@ private class ReduceAction383
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction385
+private class ReduceAction371
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9963,7 +9112,7 @@ private class ReduceAction385
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction386
+private class ReduceAction372
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9976,7 +9125,7 @@ private class ReduceAction386
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction388
+private class ReduceAction374
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9987,7 +9136,7 @@ private class ReduceAction388
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction389
+private class ReduceAction375
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9996,7 +9145,7 @@ private class ReduceAction389
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction391
+private class ReduceAction377
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10013,7 +9162,7 @@ private class ReduceAction391
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction392
+private class ReduceAction378
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10031,7 +9180,7 @@ private class ReduceAction392
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction395
+private class ReduceAction381
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10042,7 +9191,7 @@ private class ReduceAction395
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction396
+private class ReduceAction382
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10052,7 +9201,7 @@ private class ReduceAction396
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction397
+private class ReduceAction383
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10063,7 +9212,7 @@ private class ReduceAction397
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction612
+private class ReduceAction600
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10087,7 +9236,7 @@ private class ReduceAction612
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction613
+private class ReduceAction601
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10107,7 +9256,7 @@ private class ReduceAction613
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction614
+private class ReduceAction602
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10130,7 +9279,7 @@ private class ReduceAction614
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction616
+private class ReduceAction604
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10153,7 +9302,7 @@ private class ReduceAction616
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction629
+private class ReduceAction619
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10166,7 +9315,7 @@ private class ReduceAction629
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction630
+private class ReduceAction620
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10176,7 +9325,7 @@ private class ReduceAction630
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction828
+private class ReduceAction818
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10191,7 +9340,7 @@ private class ReduceAction828
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction829
+private class ReduceAction819
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10210,7 +9359,7 @@ private class ReduceAction829
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction830
+private class ReduceAction820
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10225,7 +9374,7 @@ private class ReduceAction830
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction831
+private class ReduceAction821
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10244,7 +9393,7 @@ private class ReduceAction831
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction832
+private class ReduceAction822
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10259,7 +9408,7 @@ private class ReduceAction832
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction833
+private class ReduceAction823
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10278,22 +9427,22 @@ private class ReduceAction833
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction834
+private class ReduceAction824
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var ppropdefnode1 = nodearraylist1
-                                       if ppropdefnode1 != null then
-                                               listnode2.add(ppropdefnode1)
+                                       var psuperclassnode1 = nodearraylist1
+                                       if psuperclassnode1 != null then
+                                               listnode2.add(psuperclassnode1)
                                        end
                                        node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction835
+private class ReduceAction825
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10303,31 +9452,31 @@ private class ReduceAction835
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var ppropdefnode2 = nodearraylist2
+                                       var psuperclassnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
+                                       if psuperclassnode2 != null then
+                                               listnode3.add(psuperclassnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction836
+private class ReduceAction826
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var psuperclassnode1 = nodearraylist1
-                                       if psuperclassnode1 != null then
-                                               listnode2.add(psuperclassnode1)
+                                       var ppropdefnode1 = nodearraylist1
+                                       if ppropdefnode1 != null then
+                                               listnode2.add(ppropdefnode1)
                                        end
                                        node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction837
+private class ReduceAction827
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10337,16 +9486,16 @@ private class ReduceAction837
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var psuperclassnode2 = nodearraylist2
+                                       var ppropdefnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if psuperclassnode2 != null then
-                                               listnode3.add(psuperclassnode2)
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction840
+private class ReduceAction828
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10361,7 +9510,7 @@ private class ReduceAction840
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction841
+private class ReduceAction829
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10380,7 +9529,7 @@ private class ReduceAction841
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction842
+private class ReduceAction830
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10395,7 +9544,7 @@ private class ReduceAction842
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction843
+private class ReduceAction831
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10414,7 +9563,7 @@ private class ReduceAction843
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction844
+private class ReduceAction832
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10429,7 +9578,7 @@ private class ReduceAction844
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction845
+private class ReduceAction833
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10448,7 +9597,7 @@ private class ReduceAction845
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction847
+private class ReduceAction835
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10467,7 +9616,7 @@ private class ReduceAction847
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction848
+private class ReduceAction836
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10482,7 +9631,7 @@ private class ReduceAction848
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction849
+private class ReduceAction837
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10501,7 +9650,7 @@ private class ReduceAction849
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction850
+private class ReduceAction838
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10515,7 +9664,7 @@ private class ReduceAction850
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction851
+private class ReduceAction839
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10533,7 +9682,7 @@ private class ReduceAction851
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction853
+private class ReduceAction841
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10552,7 +9701,7 @@ private class ReduceAction853
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction857
+private class ReduceAction845
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10571,7 +9720,7 @@ private class ReduceAction857
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction861
+private class ReduceAction849
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10590,7 +9739,7 @@ private class ReduceAction861
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction862
+private class ReduceAction850
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10605,7 +9754,7 @@ private class ReduceAction862
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction863
+private class ReduceAction851
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10624,7 +9773,7 @@ private class ReduceAction863
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction864
+private class ReduceAction852
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10639,7 +9788,7 @@ private class ReduceAction864
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction865
+private class ReduceAction853
        super ReduceAction
        redef fun action(p: Parser)
        do