parser: regenerate
[nit.git] / src / parser / parser.nit
index cf7724b..a63572c 100644 (file)
 # Parser.
 # This file was generated by SableCC (http://www.sablecc.org/).
-package parser
+module parser is no_warning("missing-doc", "unread-variable")
 
 intrude import parser_prod
-import tables
+intrude import parser_work
+private 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,1385 +26,1083 @@ 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(0),
-                       new ReduceAction33(0),
-                       new ReduceAction34(0),
-                       new ReduceAction35(0),
-                       new ReduceAction36(0),
-                       new ReduceAction37(0),
-                       new ReduceAction38(0),
-                       new ReduceAction39(0),
-                       new ReduceAction40(0),
-                       new ReduceAction41(0),
-                       new ReduceAction42(0),
-                       new ReduceAction43(0),
-                       new ReduceAction44(0),
-                       new ReduceAction45(0),
-                       new ReduceAction46(0),
-                       new ReduceAction47(0),
-                       new ReduceAction48(0),
-                       new ReduceAction49(0),
-                       new ReduceAction50(0),
-                       new ReduceAction51(0),
-                       new ReduceAction52(0),
-                       new ReduceAction53(0),
-                       new ReduceAction54(0),
-                       new ReduceAction55(0),
-                       new ReduceAction56(0),
-                       new ReduceAction57(0),
-                       new ReduceAction58(0),
-                       new ReduceAction59(0),
-                       new ReduceAction60(0),
-                       new ReduceAction61(0),
-                       new ReduceAction62(0),
-                       new ReduceAction63(0),
-                       new ReduceAction64(1),
-                       new ReduceAction65(1),
-                       new ReduceAction66(2),
-                       new ReduceAction67(2),
-                       new ReduceAction68(2),
-                       new ReduceAction69(3),
-                       new ReduceAction70(3),
-                       new ReduceAction71(4),
-                       new ReduceAction71(4),
-                       new ReduceAction73(5),
-                       new ReduceAction74(5),
-                       new ReduceAction75(5),
-                       new ReduceAction76(5),
-                       new ReduceAction77(5),
-                       new ReduceAction78(5),
-                       new ReduceAction79(5),
-                       new ReduceAction80(5),
-                       new ReduceAction81(5),
-                       new ReduceAction82(5),
-                       new ReduceAction83(5),
-                       new ReduceAction84(5),
-                       new ReduceAction85(5),
-                       new ReduceAction86(5),
-                       new ReduceAction87(5),
-                       new ReduceAction88(5),
-                       new ReduceAction89(5),
-                       new ReduceAction90(5),
-                       new ReduceAction91(5),
-                       new ReduceAction92(5),
-                       new ReduceAction93(5),
-                       new ReduceAction94(5),
-                       new ReduceAction95(5),
-                       new ReduceAction96(5),
-                       new ReduceAction97(5),
-                       new ReduceAction98(5),
-                       new ReduceAction99(5),
-                       new ReduceAction100(5),
-                       new ReduceAction101(5),
-                       new ReduceAction102(5),
-                       new ReduceAction103(5),
-                       new ReduceAction104(5),
-                       new ReduceAction105(5),
-                       new ReduceAction106(5),
-                       new ReduceAction107(5),
-                       new ReduceAction108(5),
-                       new ReduceAction109(5),
-                       new ReduceAction110(5),
-                       new ReduceAction111(5),
-                       new ReduceAction112(5),
-                       new ReduceAction113(5),
-                       new ReduceAction114(5),
-                       new ReduceAction115(5),
-                       new ReduceAction116(5),
-                       new ReduceAction117(5),
-                       new ReduceAction118(5),
-                       new ReduceAction119(5),
-                       new ReduceAction120(5),
-                       new ReduceAction121(5),
-                       new ReduceAction122(5),
-                       new ReduceAction123(5),
-                       new ReduceAction124(5),
-                       new ReduceAction125(5),
-                       new ReduceAction126(5),
-                       new ReduceAction127(5),
-                       new ReduceAction128(5),
-                       new ReduceAction129(5),
-                       new ReduceAction130(5),
-                       new ReduceAction131(5),
-                       new ReduceAction132(5),
-                       new ReduceAction133(5),
-                       new ReduceAction134(5),
-                       new ReduceAction135(5),
-                       new ReduceAction136(5),
-                       new ReduceAction137(6),
-                       new ReduceAction138(6),
-                       new ReduceAction139(6),
-                       new ReduceAction140(6),
-                       new ReduceAction141(6),
-                       new ReduceAction142(6),
-                       new ReduceAction143(7),
-                       new ReduceAction144(7),
-                       new ReduceAction145(8),
-                       new ReduceAction146(9),
-                       new ReduceAction147(9),
-                       new ReduceAction148(9),
-                       new ReduceAction149(9),
-                       new ReduceAction150(10),
-                       new ReduceAction151(10),
-                       new ReduceAction152(11),
-                       new ReduceAction153(12),
-                       new ReduceAction154(12),
-                       new ReduceAction155(12),
-                       new ReduceAction156(12),
-                       new ReduceAction157(12),
-                       new ReduceAction158(12),
-                       new ReduceAction159(12),
-                       new ReduceAction160(12),
-                       new ReduceAction161(12),
-                       new ReduceAction162(12),
-                       new ReduceAction163(12),
-                       new ReduceAction164(12),
-                       new ReduceAction165(12),
-                       new ReduceAction166(12),
-                       new ReduceAction167(12),
-                       new ReduceAction168(12),
-                       new ReduceAction169(12),
-                       new ReduceAction170(12),
-                       new ReduceAction171(12),
-                       new ReduceAction172(12),
-                       new ReduceAction173(12),
-                       new ReduceAction174(12),
-                       new ReduceAction175(12),
-                       new ReduceAction176(12),
-                       new ReduceAction177(12),
-                       new ReduceAction178(12),
-                       new ReduceAction179(12),
-                       new ReduceAction180(12),
-                       new ReduceAction181(12),
-                       new ReduceAction182(12),
-                       new ReduceAction183(12),
-                       new ReduceAction184(12),
-                       new ReduceAction185(12),
-                       new ReduceAction186(12),
-                       new ReduceAction187(12),
-                       new ReduceAction188(12),
-                       new ReduceAction189(12),
-                       new ReduceAction190(12),
-                       new ReduceAction191(12),
-                       new ReduceAction192(12),
-                       new ReduceAction193(12),
-                       new ReduceAction194(12),
-                       new ReduceAction195(12),
-                       new ReduceAction196(12),
-                       new ReduceAction197(12),
-                       new ReduceAction198(12),
-                       new ReduceAction199(12),
-                       new ReduceAction200(12),
-                       new ReduceAction201(12),
-                       new ReduceAction202(12),
-                       new ReduceAction203(12),
-                       new ReduceAction204(12),
-                       new ReduceAction205(12),
-                       new ReduceAction206(12),
-                       new ReduceAction207(12),
-                       new ReduceAction208(12),
-                       new ReduceAction209(12),
-                       new ReduceAction210(12),
-                       new ReduceAction211(12),
-                       new ReduceAction212(12),
-                       new ReduceAction213(12),
-                       new ReduceAction214(12),
-                       new ReduceAction215(12),
-                       new ReduceAction216(12),
-                       new ReduceAction217(12),
-                       new ReduceAction218(12),
-                       new ReduceAction219(12),
-                       new ReduceAction220(12),
-                       new ReduceAction221(12),
-                       new ReduceAction222(12),
-                       new ReduceAction223(12),
-                       new ReduceAction224(12),
-                       new ReduceAction225(12),
-                       new ReduceAction226(12),
-                       new ReduceAction227(12),
-                       new ReduceAction228(12),
-                       new ReduceAction229(12),
-                       new ReduceAction230(12),
-                       new ReduceAction231(12),
-                       new ReduceAction232(12),
-                       new ReduceAction233(12),
-                       new ReduceAction234(12),
-                       new ReduceAction235(12),
-                       new ReduceAction236(12),
-                       new ReduceAction237(12),
-                       new ReduceAction238(12),
-                       new ReduceAction239(12),
-                       new ReduceAction240(12),
-                       new ReduceAction241(12),
-                       new ReduceAction242(12),
-                       new ReduceAction243(12),
-                       new ReduceAction244(12),
-                       new ReduceAction245(12),
-                       new ReduceAction246(12),
-                       new ReduceAction247(12),
-                       new ReduceAction248(12),
-                       new ReduceAction249(12),
-                       new ReduceAction250(12),
-                       new ReduceAction251(12),
-                       new ReduceAction252(12),
-                       new ReduceAction253(12),
-                       new ReduceAction254(12),
-                       new ReduceAction255(12),
-                       new ReduceAction256(12),
-                       new ReduceAction257(12),
-                       new ReduceAction258(12),
-                       new ReduceAction259(12),
-                       new ReduceAction260(12),
-                       new ReduceAction261(12),
-                       new ReduceAction262(12),
-                       new ReduceAction263(12),
-                       new ReduceAction264(12),
-                       new ReduceAction265(12),
-                       new ReduceAction266(12),
-                       new ReduceAction267(12),
-                       new ReduceAction268(12),
-                       new ReduceAction269(12),
-                       new ReduceAction270(12),
-                       new ReduceAction271(12),
-                       new ReduceAction272(12),
-                       new ReduceAction273(12),
-                       new ReduceAction274(12),
-                       new ReduceAction275(12),
-                       new ReduceAction276(12),
-                       new ReduceAction277(12),
-                       new ReduceAction278(12),
-                       new ReduceAction279(12),
-                       new ReduceAction280(12),
-                       new ReduceAction281(12),
-                       new ReduceAction282(12),
-                       new ReduceAction283(12),
-                       new ReduceAction284(12),
-                       new ReduceAction285(12),
-                       new ReduceAction286(12),
-                       new ReduceAction287(12),
-                       new ReduceAction288(12),
-                       new ReduceAction289(12),
-                       new ReduceAction290(12),
-                       new ReduceAction291(12),
-                       new ReduceAction292(12),
-                       new ReduceAction293(12),
-                       new ReduceAction294(12),
-                       new ReduceAction295(12),
-                       new ReduceAction296(12),
-                       new ReduceAction297(12),
-                       new ReduceAction298(12),
-                       new ReduceAction299(12),
-                       new ReduceAction300(12),
-                       new ReduceAction301(12),
-                       new ReduceAction302(12),
-                       new ReduceAction303(12),
-                       new ReduceAction304(12),
-                       new ReduceAction305(12),
-                       new ReduceAction306(12),
-                       new ReduceAction307(12),
-                       new ReduceAction308(12),
-                       new ReduceAction309(12),
-                       new ReduceAction310(12),
-                       new ReduceAction311(12),
-                       new ReduceAction312(12),
-                       new ReduceAction313(12),
-                       new ReduceAction314(12),
-                       new ReduceAction315(12),
-                       new ReduceAction316(12),
-                       new ReduceAction317(12),
-                       new ReduceAction318(12),
-                       new ReduceAction319(12),
-                       new ReduceAction320(12),
-                       new ReduceAction321(13),
-                       new ReduceAction322(13),
-                       new ReduceAction321(14),
-                       new ReduceAction324(14),
-                       new ReduceAction325(15),
-                       new ReduceAction326(15),
-                       new ReduceAction327(16),
-                       new ReduceAction328(16),
-                       new ReduceAction329(17),
-                       new ReduceAction330(17),
-                       new ReduceAction331(18),
-                       new ReduceAction332(18),
-                       new ReduceAction333(18),
-                       new ReduceAction334(18),
-                       new ReduceAction335(19),
-                       new ReduceAction336(19),
-                       new ReduceAction337(19),
-                       new ReduceAction338(19),
-                       new ReduceAction339(19),
-                       new ReduceAction340(19),
-                       new ReduceAction341(19),
-                       new ReduceAction342(19),
-                       new ReduceAction343(19),
-                       new ReduceAction344(19),
-                       new ReduceAction345(19),
-                       new ReduceAction346(19),
-                       new ReduceAction347(19),
-                       new ReduceAction348(19),
-                       new ReduceAction349(19),
-                       new ReduceAction350(19),
-                       new ReduceAction351(19),
-                       new ReduceAction352(19),
-                       new ReduceAction353(20),
-                       new ReduceAction354(20),
-                       new ReduceAction355(20),
-                       new ReduceAction356(20),
-                       new ReduceAction357(20),
-                       new ReduceAction358(20),
-                       new ReduceAction359(20),
-                       new ReduceAction360(20),
-                       new ReduceAction361(20),
-                       new ReduceAction362(20),
-                       new ReduceAction363(20),
-                       new ReduceAction364(20),
-                       new ReduceAction365(21),
-                       new ReduceAction366(21),
-                       new ReduceAction367(21),
-                       new ReduceAction368(21),
-                       new ReduceAction369(21),
-                       new ReduceAction370(21),
-                       new ReduceAction371(22),
-                       new ReduceAction372(22),
-                       new ReduceAction373(23),
-                       new ReduceAction374(24),
-                       new ReduceAction375(24),
-                       new ReduceAction376(24),
-                       new ReduceAction377(24),
-                       new ReduceAction378(24),
-                       new ReduceAction379(24),
-                       new ReduceAction380(25),
-                       new ReduceAction381(26),
-                       new ReduceAction382(26),
-                       new ReduceAction383(26),
-                       new ReduceAction384(26),
-                       new ReduceAction385(26),
-                       new ReduceAction386(26),
-                       new ReduceAction387(27),
-                       new ReduceAction388(28),
-                       new ReduceAction389(28),
-                       new ReduceAction390(29),
-                       new ReduceAction391(30),
-                       new ReduceAction391(30),
-                       new ReduceAction393(30),
-                       new ReduceAction394(31),
-                       new ReduceAction395(31),
-                       new ReduceAction396(31),
-                       new ReduceAction397(32),
-                       new ReduceAction398(32),
-                       new ReduceAction399(32),
-                       new ReduceAction400(33),
-                       new ReduceAction401(34),
-                       new ReduceAction402(34),
-                       new ReduceAction403(35),
-                       new ReduceAction404(36),
-                       new ReduceAction405(36),
-                       new ReduceAction406(36),
-                       new ReduceAction407(36),
-                       new ReduceAction408(36),
-                       new ReduceAction409(36),
-                       new ReduceAction410(36),
-                       new ReduceAction411(36),
-                       new ReduceAction412(37),
-                       new ReduceAction413(37),
-                       new ReduceAction414(38),
-                       new ReduceAction414(39),
-                       new ReduceAction416(40),
-                       new ReduceAction417(40),
-                       new ReduceAction418(40),
-                       new ReduceAction419(40),
-                       new ReduceAction420(41),
-                       new ReduceAction421(41),
-                       new ReduceAction422(42),
-                       new ReduceAction423(42),
-                       new ReduceAction424(43),
-                       new ReduceAction425(43),
-                       new ReduceAction416(44),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction429(45),
-                       new ReduceAction430(45),
-                       new ReduceAction431(45),
-                       new ReduceAction432(45),
-                       new ReduceAction433(45),
-                       new ReduceAction434(45),
-                       new ReduceAction435(45),
-                       new ReduceAction436(45),
-                       new ReduceAction437(45),
-                       new ReduceAction438(45),
-                       new ReduceAction439(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction419(45),
-                       new ReduceAction446(45),
-                       new ReduceAction447(45),
-                       new ReduceAction448(45),
-                       new ReduceAction449(45),
-                       new ReduceAction450(45),
-                       new ReduceAction451(45),
-                       new ReduceAction452(45),
-                       new ReduceAction453(45),
-                       new ReduceAction454(45),
-                       new ReduceAction455(46),
-                       new ReduceAction456(47),
-                       new ReduceAction457(47),
-                       new ReduceAction458(48),
-                       new ReduceAction459(48),
-                       new ReduceAction460(48),
-                       new ReduceAction461(48),
-                       new ReduceAction462(48),
-                       new ReduceAction463(48),
-                       new ReduceAction464(48),
-                       new ReduceAction465(48),
-                       new ReduceAction466(48),
-                       new ReduceAction467(49),
-                       new ReduceAction468(49),
-                       new ReduceAction469(49),
-                       new ReduceAction470(49),
-                       new ReduceAction471(49),
-                       new ReduceAction472(49),
-                       new ReduceAction473(50),
-                       new ReduceAction474(50),
-                       new ReduceAction475(51),
-                       new ReduceAction476(52),
-                       new ReduceAction477(52),
-                       new ReduceAction478(52),
-                       new ReduceAction479(52),
-                       new ReduceAction480(52),
-                       new ReduceAction481(52),
-                       new ReduceAction482(52),
-                       new ReduceAction483(52),
-                       new ReduceAction484(53),
-                       new ReduceAction485(53),
-                       new ReduceAction486(53),
-                       new ReduceAction487(53),
-                       new ReduceAction488(53),
-                       new ReduceAction489(53),
-                       new ReduceAction490(53),
-                       new ReduceAction491(53),
-                       new ReduceAction492(53),
-                       new ReduceAction493(53),
-                       new ReduceAction494(54),
-                       new ReduceAction495(54),
-                       new ReduceAction496(55),
-                       new ReduceAction497(55),
-                       new ReduceAction498(56),
-                       new ReduceAction499(56),
-                       new ReduceAction500(56),
-                       new ReduceAction501(56),
-                       new ReduceAction502(56),
-                       new ReduceAction416(57),
-                       new ReduceAction418(57),
-                       new ReduceAction505(58),
-                       new ReduceAction506(58),
-                       new ReduceAction507(59),
-                       new ReduceAction508(59),
-                       new ReduceAction509(60),
-                       new ReduceAction510(60),
-                       new ReduceAction511(60),
-                       new ReduceAction512(60),
-                       new ReduceAction513(61),
-                       new ReduceAction514(61),
-                       new ReduceAction515(61),
-                       new ReduceAction516(61),
-                       new ReduceAction517(62),
-                       new ReduceAction419(63),
-                       new ReduceAction448(63),
-                       new ReduceAction449(63),
-                       new ReduceAction521(63),
-                       new ReduceAction419(64),
-                       new ReduceAction523(64),
-                       new ReduceAction419(65),
-                       new ReduceAction525(65),
-                       new ReduceAction526(65),
-                       new ReduceAction527(65),
-                       new ReduceAction419(66),
-                       new ReduceAction529(66),
-                       new ReduceAction419(67),
-                       new ReduceAction531(67),
-                       new ReduceAction532(67),
-                       new ReduceAction533(67),
-                       new ReduceAction534(67),
-                       new ReduceAction535(67),
-                       new ReduceAction536(67),
-                       new ReduceAction537(67),
-                       new ReduceAction538(67),
-                       new ReduceAction539(67),
-                       new ReduceAction540(67),
-                       new ReduceAction541(67),
-                       new ReduceAction419(68),
-                       new ReduceAction543(68),
-                       new ReduceAction544(68),
-                       new ReduceAction419(69),
-                       new ReduceAction546(69),
-                       new ReduceAction547(69),
-                       new ReduceAction548(69),
-                       new ReduceAction419(70),
-                       new ReduceAction550(70),
-                       new ReduceAction551(70),
-                       new ReduceAction419(71),
-                       new ReduceAction553(71),
-                       new ReduceAction554(71),
-                       new ReduceAction555(71),
-                       new ReduceAction556(72),
-                       new ReduceAction557(72),
-                       new ReduceAction446(72),
-                       new ReduceAction447(72),
-                       new ReduceAction450(72),
-                       new ReduceAction451(72),
-                       new ReduceAction452(72),
-                       new ReduceAction453(72),
-                       new ReduceAction564(72),
-                       new ReduceAction565(72),
-                       new ReduceAction566(72),
-                       new ReduceAction567(72),
-                       new ReduceAction568(72),
-                       new ReduceAction569(72),
-                       new ReduceAction570(72),
-                       new ReduceAction571(72),
-                       new ReduceAction572(72),
-                       new ReduceAction573(72),
-                       new ReduceAction574(72),
-                       new ReduceAction575(72),
-                       new ReduceAction576(72),
-                       new ReduceAction577(72),
-                       new ReduceAction578(72),
-                       new ReduceAction579(72),
-                       new ReduceAction580(72),
-                       new ReduceAction581(72),
-                       new ReduceAction582(72),
-                       new ReduceAction583(72),
-                       new ReduceAction584(72),
-                       new ReduceAction585(72),
-                       new ReduceAction586(72),
-                       new ReduceAction587(72),
-                       new ReduceAction419(72),
-                       new ReduceAction589(72),
-                       new ReduceAction590(72),
-                       new ReduceAction591(72),
-                       new ReduceAction592(72),
-                       new ReduceAction593(73),
-                       new ReduceAction594(73),
-                       new ReduceAction595(73),
-                       new ReduceAction596(73),
-                       new ReduceAction597(74),
-                       new ReduceAction598(75),
-                       new ReduceAction597(76),
-                       new ReduceAction600(77),
-                       new ReduceAction601(78),
-                       new ReduceAction602(79),
-                       new ReduceAction603(79),
-                       new ReduceAction604(80),
-                       new ReduceAction605(80),
-                       new ReduceAction606(80),
-                       new ReduceAction607(80),
-                       new ReduceAction608(81),
-                       new ReduceAction609(82),
-                       new ReduceAction610(82),
-                       new ReduceAction608(83),
-                       new ReduceAction612(84),
-                       new ReduceAction613(84),
-                       new ReduceAction614(84),
-                       new ReduceAction615(84),
-                       new ReduceAction616(84),
-                       new ReduceAction617(85),
-                       new ReduceAction618(86),
-                       new ReduceAction619(86),
-                       new ReduceAction620(87),
-                       new ReduceAction621(88),
-                       new ReduceAction622(88),
-                       new ReduceAction622(88),
-                       new ReduceAction624(88),
-                       new ReduceAction625(89),
-                       new ReduceAction626(89),
-                       new ReduceAction627(89),
-                       new ReduceAction628(89),
-                       new ReduceAction629(90),
-                       new ReduceAction630(90),
-                       new ReduceAction631(90),
-                       new ReduceAction629(91),
-                       new ReduceAction633(91),
-                       new ReduceAction630(91),
-                       new ReduceAction631(91),
-                       new ReduceAction636(92),
-                       new ReduceAction637(93),
-                       new ReduceAction638(93),
-                       new ReduceAction639(94),
-                       new ReduceAction640(95),
-                       new ReduceAction641(95),
-                       new ReduceAction642(96),
-                       new ReduceAction643(96),
-                       new ReduceAction644(96),
-                       new ReduceAction645(96),
-                       new ReduceAction646(97),
-                       new ReduceAction647(97),
-                       new ReduceAction648(97),
-                       new ReduceAction649(98),
-                       new ReduceAction650(99),
-                       new ReduceAction651(100),
-                       new ReduceAction651(100),
-                       new ReduceAction653(101),
-                       new ReduceAction654(101),
-                       new ReduceAction70(101),
-                       new ReduceAction656(102),
-                       new ReduceAction657(102),
-                       new ReduceAction658(103),
-                       new ReduceAction659(103),
-                       new ReduceAction651(103),
-                       new ReduceAction152(104),
-                       new ReduceAction153(105),
-                       new ReduceAction154(105),
-                       new ReduceAction155(105),
-                       new ReduceAction156(105),
-                       new ReduceAction157(105),
-                       new ReduceAction158(105),
-                       new ReduceAction159(105),
-                       new ReduceAction160(105),
-                       new ReduceAction161(105),
-                       new ReduceAction162(105),
-                       new ReduceAction163(105),
-                       new ReduceAction164(105),
-                       new ReduceAction169(105),
-                       new ReduceAction170(105),
-                       new ReduceAction171(105),
-                       new ReduceAction172(105),
-                       new ReduceAction173(105),
-                       new ReduceAction174(105),
-                       new ReduceAction175(105),
-                       new ReduceAction176(105),
-                       new ReduceAction177(105),
-                       new ReduceAction178(105),
-                       new ReduceAction179(105),
-                       new ReduceAction180(105),
-                       new ReduceAction181(105),
-                       new ReduceAction182(105),
-                       new ReduceAction183(105),
-                       new ReduceAction184(105),
-                       new ReduceAction185(105),
-                       new ReduceAction186(105),
-                       new ReduceAction187(105),
-                       new ReduceAction188(105),
-                       new ReduceAction353(106),
-                       new ReduceAction354(106),
-                       new ReduceAction355(106),
-                       new ReduceAction356(106),
-                       new ReduceAction361(106),
-                       new ReduceAction362(106),
-                       new ReduceAction404(107),
-                       new ReduceAction405(107),
-                       new ReduceAction406(107),
-                       new ReduceAction407(107),
-                       new ReduceAction419(108),
-                       new ReduceAction448(108),
-                       new ReduceAction449(108),
-                       new ReduceAction419(109),
-                       new ReduceAction523(109),
-                       new ReduceAction419(110),
-                       new ReduceAction525(110),
-                       new ReduceAction526(110),
-                       new ReduceAction527(110),
-                       new ReduceAction419(111),
-                       new ReduceAction529(111),
-                       new ReduceAction419(112),
-                       new ReduceAction531(112),
-                       new ReduceAction532(112),
-                       new ReduceAction533(112),
-                       new ReduceAction534(112),
-                       new ReduceAction535(112),
-                       new ReduceAction536(112),
-                       new ReduceAction537(112),
-                       new ReduceAction538(112),
-                       new ReduceAction539(112),
-                       new ReduceAction540(112),
-                       new ReduceAction541(112),
-                       new ReduceAction419(113),
-                       new ReduceAction543(113),
-                       new ReduceAction544(113),
-                       new ReduceAction419(114),
-                       new ReduceAction546(114),
-                       new ReduceAction547(114),
-                       new ReduceAction548(114),
-                       new ReduceAction419(115),
-                       new ReduceAction550(115),
-                       new ReduceAction551(115),
-                       new ReduceAction419(116),
-                       new ReduceAction553(116),
-                       new ReduceAction554(116),
-                       new ReduceAction555(116),
-                       new ReduceAction556(117),
-                       new ReduceAction557(117),
-                       new ReduceAction446(117),
-                       new ReduceAction447(117),
-                       new ReduceAction450(117),
-                       new ReduceAction451(117),
-                       new ReduceAction452(117),
-                       new ReduceAction453(117),
-                       new ReduceAction565(117),
-                       new ReduceAction572(117),
-                       new ReduceAction573(117),
-                       new ReduceAction574(117),
-                       new ReduceAction575(117),
-                       new ReduceAction576(117),
-                       new ReduceAction577(117),
-                       new ReduceAction578(117),
-                       new ReduceAction579(117),
-                       new ReduceAction580(117),
-                       new ReduceAction581(117),
-                       new ReduceAction582(117),
-                       new ReduceAction583(117),
-                       new ReduceAction584(117),
-                       new ReduceAction585(117),
-                       new ReduceAction586(117),
-                       new ReduceAction587(117),
-                       new ReduceAction419(117),
-                       new ReduceAction589(117),
-                       new ReduceAction590(117),
-                       new ReduceAction591(117),
-                       new ReduceAction592(117),
-                       new ReduceAction404(118),
-                       new ReduceAction405(118),
-                       new ReduceAction406(118),
-                       new ReduceAction407(118),
-                       new ReduceAction408(118),
-                       new ReduceAction409(118),
-                       new ReduceAction410(118),
-                       new ReduceAction411(118),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction429(119),
-                       new ReduceAction430(119),
-                       new ReduceAction431(119),
-                       new ReduceAction432(119),
-                       new ReduceAction433(119),
-                       new ReduceAction434(119),
-                       new ReduceAction435(119),
-                       new ReduceAction436(119),
-                       new ReduceAction437(119),
-                       new ReduceAction438(119),
-                       new ReduceAction439(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction419(119),
-                       new ReduceAction446(119),
-                       new ReduceAction447(119),
-                       new ReduceAction448(119),
-                       new ReduceAction449(119),
-                       new ReduceAction450(119),
-                       new ReduceAction451(119),
-                       new ReduceAction452(119),
-                       new ReduceAction453(119),
-                       new ReduceAction454(119),
-                       new ReduceAction484(120),
-                       new ReduceAction485(120),
-                       new ReduceAction486(120),
-                       new ReduceAction487(120),
-                       new ReduceAction488(120),
-                       new ReduceAction489(120),
-                       new ReduceAction490(120),
-                       new ReduceAction491(120),
-                       new ReduceAction492(120),
-                       new ReduceAction493(120),
-                       new ReduceAction419(121),
-                       new ReduceAction448(121),
-                       new ReduceAction449(121),
-                       new ReduceAction419(122),
-                       new ReduceAction523(122),
-                       new ReduceAction419(123),
-                       new ReduceAction525(123),
-                       new ReduceAction526(123),
-                       new ReduceAction527(123),
-                       new ReduceAction419(124),
-                       new ReduceAction529(124),
-                       new ReduceAction419(125),
-                       new ReduceAction531(125),
-                       new ReduceAction532(125),
-                       new ReduceAction533(125),
-                       new ReduceAction534(125),
-                       new ReduceAction535(125),
-                       new ReduceAction536(125),
-                       new ReduceAction537(125),
-                       new ReduceAction538(125),
-                       new ReduceAction539(125),
-                       new ReduceAction540(125),
-                       new ReduceAction541(125),
-                       new ReduceAction419(126),
-                       new ReduceAction543(126),
-                       new ReduceAction544(126),
-                       new ReduceAction419(127),
-                       new ReduceAction546(127),
-                       new ReduceAction547(127),
-                       new ReduceAction548(127),
-                       new ReduceAction419(128),
-                       new ReduceAction550(128),
-                       new ReduceAction551(128),
-                       new ReduceAction419(129),
-                       new ReduceAction553(129),
-                       new ReduceAction554(129),
-                       new ReduceAction555(129),
-                       new ReduceAction556(130),
-                       new ReduceAction557(130),
-                       new ReduceAction446(130),
-                       new ReduceAction447(130),
-                       new ReduceAction450(130),
-                       new ReduceAction451(130),
-                       new ReduceAction452(130),
-                       new ReduceAction453(130),
-                       new ReduceAction564(130),
-                       new ReduceAction565(130),
-                       new ReduceAction572(130),
-                       new ReduceAction573(130),
-                       new ReduceAction574(130),
-                       new ReduceAction575(130),
-                       new ReduceAction576(130),
-                       new ReduceAction577(130),
-                       new ReduceAction578(130),
-                       new ReduceAction579(130),
-                       new ReduceAction580(130),
-                       new ReduceAction581(130),
-                       new ReduceAction582(130),
-                       new ReduceAction583(130),
-                       new ReduceAction584(130),
-                       new ReduceAction585(130),
-                       new ReduceAction586(130),
-                       new ReduceAction587(130),
-                       new ReduceAction419(130),
-                       new ReduceAction591(130),
-                       new ReduceAction592(130),
-                       new ReduceAction602(131),
-                       new ReduceAction603(131),
-                       new ReduceAction604(132),
-                       new ReduceAction605(132),
-                       new ReduceAction618(133),
-                       new ReduceAction619(133),
-                       new ReduceAction621(134),
-                       new ReduceAction622(134),
-                       new ReduceAction622(134),
-                       new ReduceAction404(135),
-                       new ReduceAction405(135),
-                       new ReduceAction406(135),
-                       new ReduceAction407(135),
-                       new ReduceAction419(136),
-                       new ReduceAction448(136),
-                       new ReduceAction449(136),
-                       new ReduceAction419(137),
-                       new ReduceAction523(137),
-                       new ReduceAction419(138),
-                       new ReduceAction525(138),
-                       new ReduceAction526(138),
-                       new ReduceAction527(138),
-                       new ReduceAction419(139),
-                       new ReduceAction529(139),
-                       new ReduceAction419(140),
-                       new ReduceAction531(140),
-                       new ReduceAction532(140),
-                       new ReduceAction533(140),
-                       new ReduceAction534(140),
-                       new ReduceAction535(140),
-                       new ReduceAction536(140),
-                       new ReduceAction537(140),
-                       new ReduceAction538(140),
-                       new ReduceAction539(140),
-                       new ReduceAction540(140),
-                       new ReduceAction541(140),
-                       new ReduceAction419(141),
-                       new ReduceAction543(141),
-                       new ReduceAction544(141),
-                       new ReduceAction419(142),
-                       new ReduceAction546(142),
-                       new ReduceAction547(142),
-                       new ReduceAction548(142),
-                       new ReduceAction419(143),
-                       new ReduceAction550(143),
-                       new ReduceAction551(143),
-                       new ReduceAction419(144),
-                       new ReduceAction553(144),
-                       new ReduceAction931(144),
-                       new ReduceAction932(145),
-                       new ReduceAction933(145),
-                       new ReduceAction450(145),
-                       new ReduceAction451(145),
-                       new ReduceAction936(145),
-                       new ReduceAction565(145),
-                       new ReduceAction572(145),
-                       new ReduceAction573(145),
-                       new ReduceAction574(145),
-                       new ReduceAction575(145),
-                       new ReduceAction576(145),
-                       new ReduceAction577(145),
-                       new ReduceAction578(145),
-                       new ReduceAction579(145),
-                       new ReduceAction580(145),
-                       new ReduceAction581(145),
-                       new ReduceAction582(145),
-                       new ReduceAction583(145),
-                       new ReduceAction584(145),
-                       new ReduceAction585(145),
-                       new ReduceAction586(145),
-                       new ReduceAction587(145),
-                       new ReduceAction419(145),
-                       new ReduceAction591(145),
-                       new ReduceAction592(145),
-                       new ReduceAction957(146),
-                       new ReduceAction958(146),
-                       new ReduceAction416(147),
-                       new ReduceAction417(147),
-                       new ReduceAction418(147),
-                       new ReduceAction419(147),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction429(148),
-                       new ReduceAction430(148),
-                       new ReduceAction431(148),
-                       new ReduceAction432(148),
-                       new ReduceAction433(148),
-                       new ReduceAction434(148),
-                       new ReduceAction435(148),
-                       new ReduceAction436(148),
-                       new ReduceAction437(148),
-                       new ReduceAction438(148),
-                       new ReduceAction439(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction419(148),
-                       new ReduceAction446(148),
-                       new ReduceAction447(148),
-                       new ReduceAction448(148),
-                       new ReduceAction449(148),
-                       new ReduceAction450(148),
-                       new ReduceAction451(148),
-                       new ReduceAction452(148),
-                       new ReduceAction453(148),
-                       new ReduceAction454(148),
-                       new ReduceAction456(149),
-                       new ReduceAction457(149),
-                       new ReduceAction458(150),
-                       new ReduceAction459(150),
-                       new ReduceAction460(150),
-                       new ReduceAction461(150),
-                       new ReduceAction462(150),
-                       new ReduceAction463(150),
-                       new ReduceAction464(150),
-                       new ReduceAction465(150),
-                       new ReduceAction466(150),
-                       new ReduceAction475(151),
-                       new ReduceAction476(152),
-                       new ReduceAction477(152),
-                       new ReduceAction478(152),
-                       new ReduceAction479(152),
-                       new ReduceAction480(152),
-                       new ReduceAction481(152),
-                       new ReduceAction482(152),
-                       new ReduceAction483(152),
-                       new ReduceAction484(153),
-                       new ReduceAction485(153),
-                       new ReduceAction486(153),
-                       new ReduceAction487(153),
-                       new ReduceAction488(153),
-                       new ReduceAction489(153),
-                       new ReduceAction490(153),
-                       new ReduceAction491(153),
-                       new ReduceAction492(153),
-                       new ReduceAction493(153),
-                       new ReduceAction496(154),
-                       new ReduceAction497(154),
-                       new ReduceAction498(155),
-                       new ReduceAction505(156),
-                       new ReduceAction506(156),
-                       new ReduceAction507(157),
-                       new ReduceAction508(157),
-                       new ReduceAction509(158),
-                       new ReduceAction510(158),
-                       new ReduceAction511(158),
-                       new ReduceAction512(158),
-                       new ReduceAction513(159),
-                       new ReduceAction514(159),
-                       new ReduceAction419(160),
-                       new ReduceAction448(160),
-                       new ReduceAction449(160),
-                       new ReduceAction521(160),
-                       new ReduceAction419(161),
-                       new ReduceAction448(161),
-                       new ReduceAction449(161),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction429(162),
-                       new ReduceAction430(162),
-                       new ReduceAction431(162),
-                       new ReduceAction432(162),
-                       new ReduceAction433(162),
-                       new ReduceAction434(162),
-                       new ReduceAction435(162),
-                       new ReduceAction436(162),
-                       new ReduceAction437(162),
-                       new ReduceAction438(162),
-                       new ReduceAction439(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction419(162),
-                       new ReduceAction446(162),
-                       new ReduceAction447(162),
-                       new ReduceAction448(162),
-                       new ReduceAction449(162),
-                       new ReduceAction450(162),
-                       new ReduceAction451(162),
-                       new ReduceAction452(162),
-                       new ReduceAction453(162),
-                       new ReduceAction454(162),
-                       new ReduceAction484(163),
-                       new ReduceAction485(163),
-                       new ReduceAction486(163),
-                       new ReduceAction487(163),
-                       new ReduceAction488(163),
-                       new ReduceAction489(163),
-                       new ReduceAction490(163),
-                       new ReduceAction491(163),
-                       new ReduceAction492(163),
-                       new ReduceAction493(163),
-                       new ReduceAction419(164),
-                       new ReduceAction448(164),
-                       new ReduceAction449(164),
-                       new ReduceAction419(165),
-                       new ReduceAction448(165),
-                       new ReduceAction449(165),
-                       new ReduceAction416(166),
-                       new ReduceAction417(166),
-                       new ReduceAction418(166),
-                       new ReduceAction416(167),
-                       new ReduceAction417(167),
-                       new ReduceAction418(167),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction429(168),
-                       new ReduceAction430(168),
-                       new ReduceAction431(168),
-                       new ReduceAction432(168),
-                       new ReduceAction433(168),
-                       new ReduceAction434(168),
-                       new ReduceAction435(168),
-                       new ReduceAction436(168),
-                       new ReduceAction437(168),
-                       new ReduceAction438(168),
-                       new ReduceAction439(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction419(168),
-                       new ReduceAction454(168),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction429(169),
-                       new ReduceAction430(169),
-                       new ReduceAction431(169),
-                       new ReduceAction432(169),
-                       new ReduceAction433(169),
-                       new ReduceAction434(169),
-                       new ReduceAction435(169),
-                       new ReduceAction436(169),
-                       new ReduceAction437(169),
-                       new ReduceAction438(169),
-                       new ReduceAction439(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction419(169),
-                       new ReduceAction454(169),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction429(170),
-                       new ReduceAction430(170),
-                       new ReduceAction431(170),
-                       new ReduceAction432(170),
-                       new ReduceAction433(170),
-                       new ReduceAction434(170),
-                       new ReduceAction435(170),
-                       new ReduceAction436(170),
-                       new ReduceAction437(170),
-                       new ReduceAction438(170),
-                       new ReduceAction439(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction419(170),
-                       new ReduceAction454(170),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction429(171),
-                       new ReduceAction430(171),
-                       new ReduceAction431(171),
-                       new ReduceAction432(171),
-                       new ReduceAction433(171),
-                       new ReduceAction434(171),
-                       new ReduceAction435(171),
-                       new ReduceAction436(171),
-                       new ReduceAction437(171),
-                       new ReduceAction438(171),
-                       new ReduceAction439(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction419(171),
-                       new ReduceAction454(171),
-                       new ReduceAction419(172),
-                       new ReduceAction523(172),
-                       new ReduceAction419(173),
-                       new ReduceAction525(173),
-                       new ReduceAction526(173),
-                       new ReduceAction527(173),
-                       new ReduceAction419(174),
-                       new ReduceAction529(174),
-                       new ReduceAction419(175),
-                       new ReduceAction531(175),
-                       new ReduceAction533(175),
-                       new ReduceAction534(175),
-                       new ReduceAction535(175),
-                       new ReduceAction536(175),
-                       new ReduceAction537(175),
-                       new ReduceAction538(175),
-                       new ReduceAction539(175),
-                       new ReduceAction540(175),
-                       new ReduceAction541(175),
-                       new ReduceAction419(176),
-                       new ReduceAction523(176),
-                       new ReduceAction419(177),
-                       new ReduceAction525(177),
-                       new ReduceAction526(177),
-                       new ReduceAction527(177),
-                       new ReduceAction419(178),
-                       new ReduceAction529(178),
-                       new ReduceAction419(179),
-                       new ReduceAction531(179),
-                       new ReduceAction533(179),
-                       new ReduceAction534(179),
-                       new ReduceAction535(179),
-                       new ReduceAction536(179),
-                       new ReduceAction537(179),
-                       new ReduceAction538(179),
-                       new ReduceAction539(179),
-                       new ReduceAction540(179),
-                       new ReduceAction541(179),
-                       new ReduceAction419(180),
-                       new ReduceAction523(180),
-                       new ReduceAction419(181),
-                       new ReduceAction525(181),
-                       new ReduceAction526(181),
-                       new ReduceAction527(181),
-                       new ReduceAction419(182),
-                       new ReduceAction529(182),
-                       new ReduceAction419(183),
-                       new ReduceAction531(183),
-                       new ReduceAction533(183),
-                       new ReduceAction534(183),
-                       new ReduceAction535(183),
-                       new ReduceAction536(183),
-                       new ReduceAction537(183),
-                       new ReduceAction538(183),
-                       new ReduceAction539(183),
-                       new ReduceAction540(183),
-                       new ReduceAction541(183),
-                       new ReduceAction419(184),
-                       new ReduceAction523(184),
-                       new ReduceAction419(185),
-                       new ReduceAction525(185),
-                       new ReduceAction526(185),
-                       new ReduceAction527(185),
-                       new ReduceAction419(186),
-                       new ReduceAction529(186),
-                       new ReduceAction419(187),
-                       new ReduceAction531(187),
-                       new ReduceAction533(187),
-                       new ReduceAction534(187),
-                       new ReduceAction535(187),
-                       new ReduceAction536(187),
-                       new ReduceAction537(187),
-                       new ReduceAction538(187),
-                       new ReduceAction539(187),
-                       new ReduceAction540(187),
-                       new ReduceAction541(187),
-                       new ReduceAction612(188),
-                       new ReduceAction613(188),
-                       new ReduceAction614(188),
-                       new ReduceAction615(188),
-                       new ReduceAction616(188),
-                       new ReduceAction625(189),
-                       new ReduceAction628(189),
-                       new ReduceAction1250(190),
-                       new ReduceAction1251(190),
-                       new ReduceAction1252(191),
-                       new ReduceAction1253(191),
-                       new ReduceAction1254(192),
-                       new ReduceAction1255(192),
-                       new ReduceAction1256(193),
-                       new ReduceAction1257(193),
-                       new ReduceAction1258(194),
-                       new ReduceAction1259(194),
-                       new ReduceAction1256(195),
-                       new ReduceAction1257(195),
-                       new ReduceAction1262(196),
-                       new ReduceAction1263(196),
-                       new ReduceAction1264(197),
-                       new ReduceAction1265(197),
-                       new ReduceAction1266(198),
-                       new ReduceAction1267(198),
-                       new ReduceAction1268(199),
-                       new ReduceAction1269(199),
-                       new ReduceAction412(200),
-                       new ReduceAction1271(200),
-                       new ReduceAction1272(201),
-                       new ReduceAction1273(201),
-                       new ReduceAction380(202),
-                       new ReduceAction1275(202),
-                       new ReduceAction609(203),
-                       new ReduceAction1277(203),
-                       new ReduceAction609(204),
-                       new ReduceAction1277(204),
-                       new ReduceAction618(205),
-                       new ReduceAction1281(205),
-                       new ReduceAction1272(206),
-                       new ReduceAction1273(206),
-                       new ReduceAction640(207),
-                       new ReduceAction1285(207),
-                       new ReduceAction1286(208),
-                       new ReduceAction1287(208),
-                       new ReduceAction1288(209),
-                       new ReduceAction1289(209),
-                       new ReduceAction609(210),
-                       new ReduceAction1277(210)
+                       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 ReduceAction22(7),
+                       new ReduceAction29(7),
+                       new ReduceAction30(8),
+                       new ReduceAction31(8),
+                       new ReduceAction32(8),
+                       new ReduceAction33(8),
+                       new ReduceAction34(8),
+                       new ReduceAction35(9),
+                       new ReduceAction36(9),
+                       new ReduceAction37(9),
+                       new ReduceAction38(10),
+                       new ReduceAction39(11),
+                       new ReduceAction40(11),
+                       new ReduceAction41(12),
+                       new ReduceAction42(13),
+                       new ReduceAction43(13),
+                       new ReduceAction44(13),
+                       new ReduceAction45(14),
+                       new ReduceAction46(15),
+                       new ReduceAction47(15),
+                       new ReduceAction48(15),
+                       new ReduceAction49(15),
+                       new ReduceAction50(15),
+                       new ReduceAction51(15),
+                       new ReduceAction52(15),
+                       new ReduceAction53(15),
+                       new ReduceAction54(15),
+                       new ReduceAction55(15),
+                       new ReduceAction56(15),
+                       new ReduceAction57(15),
+                       new ReduceAction58(15),
+                       new ReduceAction59(15),
+                       new ReduceAction60(15),
+                       new ReduceAction61(15),
+                       new ReduceAction62(15),
+                       new ReduceAction63(15),
+                       new ReduceAction64(15),
+                       new ReduceAction65(15),
+                       new ReduceAction66(15),
+                       new ReduceAction67(15),
+                       new ReduceAction68(15),
+                       new ReduceAction69(15),
+                       new ReduceAction70(15),
+                       new ReduceAction71(15),
+                       new ReduceAction72(15),
+                       new ReduceAction72(15),
+                       new ReduceAction74(16),
+                       new ReduceAction75(16),
+                       new ReduceAction22(16),
+                       new ReduceAction74(17),
+                       new ReduceAction78(17),
+                       new ReduceAction79(18),
+                       new ReduceAction80(18),
+                       new ReduceAction81(18),
+                       new ReduceAction82(18),
+                       new ReduceAction83(18),
+                       new ReduceAction84(19),
+                       new ReduceAction85(19),
+                       new ReduceAction86(19),
+                       new ReduceAction87(19),
+                       new ReduceAction88(19),
+                       new ReduceAction89(19),
+                       new ReduceAction90(19),
+                       new ReduceAction91(19),
+                       new ReduceAction92(19),
+                       new ReduceAction93(19),
+                       new ReduceAction94(19),
+                       new ReduceAction95(19),
+                       new ReduceAction96(19),
+                       new ReduceAction97(19),
+                       new ReduceAction98(19),
+                       new ReduceAction99(19),
+                       new ReduceAction100(19),
+                       new ReduceAction101(19),
+                       new ReduceAction102(19),
+                       new ReduceAction103(19),
+                       new ReduceAction104(19),
+                       new ReduceAction105(19),
+                       new ReduceAction106(19),
+                       new ReduceAction107(20),
+                       new ReduceAction108(20),
+                       new ReduceAction109(20),
+                       new ReduceAction110(20),
+                       new ReduceAction111(21),
+                       new ReduceAction112(21),
+                       new ReduceAction37(21),
+                       new ReduceAction114(22),
+                       new ReduceAction115(23),
+                       new ReduceAction116(23),
+                       new ReduceAction117(23),
+                       new ReduceAction118(23),
+                       new ReduceAction119(23),
+                       new ReduceAction120(24),
+                       new ReduceAction121(24),
+                       new ReduceAction22(24),
+                       new ReduceAction123(25),
+                       new ReduceAction124(26),
+                       new ReduceAction124(26),
+                       new ReduceAction126(26),
+                       new ReduceAction127(27),
+                       new ReduceAction128(27),
+                       new ReduceAction129(27),
+                       new ReduceAction130(28),
+                       new ReduceAction131(28),
+                       new ReduceAction132(28),
+                       new ReduceAction133(28),
+                       new ReduceAction134(28),
+                       new ReduceAction135(28),
+                       new ReduceAction22(29),
+                       new ReduceAction137(29),
+                       new ReduceAction138(30),
+                       new ReduceAction139(31),
+                       new ReduceAction140(31),
+                       new ReduceAction141(32),
+                       new ReduceAction22(32),
+                       new ReduceAction143(33),
+                       new ReduceAction144(34),
+                       new ReduceAction145(34),
+                       new ReduceAction146(34),
+                       new ReduceAction147(34),
+                       new ReduceAction148(35),
+                       new ReduceAction149(35),
+                       new ReduceAction150(36),
+                       new ReduceAction150(37),
+                       new ReduceAction150(38),
+                       new ReduceAction22(38),
+                       new ReduceAction154(39),
+                       new ReduceAction155(39),
+                       new ReduceAction156(39),
+                       new ReduceAction157(39),
+                       new ReduceAction158(40),
+                       new ReduceAction159(40),
+                       new ReduceAction160(41),
+                       new ReduceAction161(41),
+                       new ReduceAction162(42),
+                       new ReduceAction163(42),
+                       new ReduceAction154(43),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction167(44),
+                       new ReduceAction168(44),
+                       new ReduceAction169(44),
+                       new ReduceAction170(44),
+                       new ReduceAction171(44),
+                       new ReduceAction172(44),
+                       new ReduceAction173(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction157(44),
+                       new ReduceAction181(44),
+                       new ReduceAction182(44),
+                       new ReduceAction183(44),
+                       new ReduceAction182(44),
+                       new ReduceAction185(44),
+                       new ReduceAction186(44),
+                       new ReduceAction187(44),
+                       new ReduceAction186(44),
+                       new ReduceAction189(44),
+                       new ReduceAction190(44),
+                       new ReduceAction191(44),
+                       new ReduceAction192(44),
+                       new ReduceAction193(44),
+                       new ReduceAction192(44),
+                       new ReduceAction195(44),
+                       new ReduceAction196(44),
+                       new ReduceAction195(44),
+                       new ReduceAction198(44),
+                       new ReduceAction199(45),
+                       new ReduceAction200(45),
+                       new ReduceAction201(46),
+                       new ReduceAction202(46),
+                       new ReduceAction203(46),
+                       new ReduceAction204(46),
+                       new ReduceAction205(47),
+                       new ReduceAction206(47),
+                       new ReduceAction207(47),
+                       new ReduceAction208(47),
+                       new ReduceAction209(47),
+                       new ReduceAction210(47),
+                       new ReduceAction211(47),
+                       new ReduceAction212(47),
+                       new ReduceAction209(47),
+                       new ReduceAction210(47),
+                       new ReduceAction215(47),
+                       new ReduceAction216(47),
+                       new ReduceAction217(47),
+                       new ReduceAction218(47),
+                       new ReduceAction219(47),
+                       new ReduceAction220(47),
+                       new ReduceAction217(47),
+                       new ReduceAction218(47),
+                       new ReduceAction223(47),
+                       new ReduceAction224(47),
+                       new ReduceAction225(47),
+                       new ReduceAction226(47),
+                       new ReduceAction227(47),
+                       new ReduceAction228(47),
+                       new ReduceAction229(47),
+                       new ReduceAction230(47),
+                       new ReduceAction231(47),
+                       new ReduceAction228(47),
+                       new ReduceAction229(47),
+                       new ReduceAction234(47),
+                       new ReduceAction235(47),
+                       new ReduceAction236(47),
+                       new ReduceAction237(47),
+                       new ReduceAction238(47),
+                       new ReduceAction239(47),
+                       new ReduceAction236(47),
+                       new ReduceAction237(47),
+                       new ReduceAction242(47),
+                       new ReduceAction243(48),
+                       new ReduceAction244(48),
+                       new ReduceAction245(48),
+                       new ReduceAction246(48),
+                       new ReduceAction247(48),
+                       new ReduceAction248(48),
+                       new ReduceAction249(48),
+                       new ReduceAction250(48),
+                       new ReduceAction251(48),
+                       new ReduceAction252(48),
+                       new ReduceAction253(48),
+                       new ReduceAction254(49),
+                       new ReduceAction255(49),
+                       new ReduceAction256(50),
+                       new ReduceAction257(50),
+                       new ReduceAction258(50),
+                       new ReduceAction259(50),
+                       new ReduceAction260(50),
+                       new ReduceAction154(51),
+                       new ReduceAction156(51),
+                       new ReduceAction263(52),
+                       new ReduceAction264(52),
+                       new ReduceAction265(53),
+                       new ReduceAction266(53),
+                       new ReduceAction267(54),
+                       new ReduceAction268(54),
+                       new ReduceAction269(55),
+                       new ReduceAction270(55),
+                       new ReduceAction271(56),
+                       new ReduceAction272(56),
+                       new ReduceAction157(56),
+                       new ReduceAction274(57),
+                       new ReduceAction275(57),
+                       new ReduceAction276(57),
+                       new ReduceAction277(57),
+                       new ReduceAction278(58),
+                       new ReduceAction157(59),
+                       new ReduceAction280(59),
+                       new ReduceAction157(60),
+                       new ReduceAction282(60),
+                       new ReduceAction283(60),
+                       new ReduceAction284(60),
+                       new ReduceAction285(60),
+                       new ReduceAction157(61),
+                       new ReduceAction287(61),
+                       new ReduceAction157(62),
+                       new ReduceAction289(62),
+                       new ReduceAction290(62),
+                       new ReduceAction291(62),
+                       new ReduceAction292(62),
+                       new ReduceAction293(62),
+                       new ReduceAction294(62),
+                       new ReduceAction295(62),
+                       new ReduceAction296(62),
+                       new ReduceAction157(63),
+                       new ReduceAction298(63),
+                       new ReduceAction157(64),
+                       new ReduceAction300(64),
+                       new ReduceAction157(65),
+                       new ReduceAction302(65),
+                       new ReduceAction157(66),
+                       new ReduceAction304(66),
+                       new ReduceAction305(66),
+                       new ReduceAction157(67),
+                       new ReduceAction307(67),
+                       new ReduceAction308(67),
+                       new ReduceAction157(68),
+                       new ReduceAction310(68),
+                       new ReduceAction311(68),
+                       new ReduceAction312(68),
+                       new ReduceAction157(69),
+                       new ReduceAction314(69),
+                       new ReduceAction157(70),
+                       new ReduceAction316(70),
+                       new ReduceAction317(70),
+                       new ReduceAction318(70),
+                       new ReduceAction319(70),
+                       new ReduceAction157(71),
+                       new ReduceAction321(71),
+                       new ReduceAction322(71),
+                       new ReduceAction323(71),
+                       new ReduceAction324(71),
+                       new ReduceAction157(72),
+                       new ReduceAction326(72),
+                       new ReduceAction327(72),
+                       new ReduceAction181(72),
+                       new ReduceAction329(72),
+                       new ReduceAction182(72),
+                       new ReduceAction331(72),
+                       new ReduceAction183(72),
+                       new ReduceAction333(72),
+                       new ReduceAction182(72),
+                       new ReduceAction331(72),
+                       new ReduceAction185(72),
+                       new ReduceAction337(72),
+                       new ReduceAction186(72),
+                       new ReduceAction339(72),
+                       new ReduceAction187(72),
+                       new ReduceAction341(72),
+                       new ReduceAction186(72),
+                       new ReduceAction339(72),
+                       new ReduceAction189(72),
+                       new ReduceAction345(72),
+                       new ReduceAction190(72),
+                       new ReduceAction347(72),
+                       new ReduceAction191(72),
+                       new ReduceAction349(72),
+                       new ReduceAction350(72),
+                       new ReduceAction351(72),
+                       new ReduceAction352(72),
+                       new ReduceAction353(72),
+                       new ReduceAction354(72),
+                       new ReduceAction355(72),
+                       new ReduceAction356(72),
+                       new ReduceAction353(72),
+                       new ReduceAction354(72),
+                       new ReduceAction359(72),
+                       new ReduceAction360(72),
+                       new ReduceAction361(72),
+                       new ReduceAction362(72),
+                       new ReduceAction363(73),
+                       new ReduceAction364(73),
+                       new ReduceAction365(73),
+                       new ReduceAction366(73),
+                       new ReduceAction367(73),
+                       new ReduceAction368(73),
+                       new ReduceAction369(73),
+                       new ReduceAction370(73),
+                       new ReduceAction371(73),
+                       new ReduceAction157(73),
+                       new ReduceAction157(73),
+                       new ReduceAction374(73),
+                       new ReduceAction375(73),
+                       new ReduceAction376(73),
+                       new ReduceAction377(74),
+                       new ReduceAction377(74),
+                       new ReduceAction379(75),
+                       new ReduceAction380(76),
+                       new ReduceAction381(77),
+                       new ReduceAction382(77),
+                       new ReduceAction380(78),
+                       new ReduceAction384(79),
+                       new ReduceAction268(79),
+                       new ReduceAction386(79),
+                       new ReduceAction387(80),
+                       new ReduceAction388(80),
+                       new ReduceAction389(81),
+                       new ReduceAction390(81),
+                       new ReduceAction391(82),
+                       new ReduceAction389(83),
+                       new ReduceAction390(83),
+                       new ReduceAction394(84),
+                       new ReduceAction395(85),
+                       new ReduceAction396(86),
+                       new ReduceAction397(86),
+                       new ReduceAction398(87),
+                       new ReduceAction22(87),
+                       new ReduceAction400(88),
+                       new ReduceAction401(88),
+                       new ReduceAction402(89),
+                       new ReduceAction403(90),
+                       new ReduceAction404(90),
+                       new ReduceAction400(91),
+                       new ReduceAction401(91),
+                       new ReduceAction407(91),
+                       new ReduceAction157(92),
+                       new ReduceAction409(93),
+                       new ReduceAction402(94),
+                       new ReduceAction411(95),
+                       new ReduceAction412(95),
+                       new ReduceAction413(95),
+                       new ReduceAction414(95),
+                       new ReduceAction415(95),
+                       new ReduceAction416(96),
+                       new ReduceAction417(96),
+                       new ReduceAction418(96),
+                       new ReduceAction419(96),
+                       new ReduceAction420(96),
+                       new ReduceAction381(97),
+                       new ReduceAction382(97),
+                       new ReduceAction380(98),
+                       new ReduceAction424(99),
+                       new ReduceAction157(99),
+                       new ReduceAction157(99),
+                       new ReduceAction427(99),
+                       new ReduceAction428(99),
+                       new ReduceAction429(99),
+                       new ReduceAction430(100),
+                       new ReduceAction431(100),
+                       new ReduceAction432(100),
+                       new ReduceAction433(101),
+                       new ReduceAction434(101),
+                       new ReduceAction433(102),
+                       new ReduceAction436(102),
+                       new ReduceAction434(102),
+                       new ReduceAction438(102),
+                       new ReduceAction439(103),
+                       new ReduceAction440(104),
+                       new ReduceAction390(105),
+                       new ReduceAction442(105),
+                       new ReduceAction443(106),
+                       new ReduceAction444(107),
+                       new ReduceAction445(107),
+                       new ReduceAction446(108),
+                       new ReduceAction447(108),
+                       new ReduceAction448(109),
+                       new ReduceAction449(109),
+                       new ReduceAction450(109),
+                       new ReduceAction451(109),
+                       new ReduceAction452(110),
+                       new ReduceAction453(110),
+                       new ReduceAction454(110),
+                       new ReduceAction22(110),
+                       new ReduceAction456(111),
+                       new ReduceAction457(111),
+                       new ReduceAction458(111),
+                       new ReduceAction457(111),
+                       new ReduceAction460(112),
+                       new ReduceAction461(112),
+                       new ReduceAction462(112),
+                       new ReduceAction461(112),
+                       new ReduceAction464(113),
+                       new ReduceAction465(114),
+                       new ReduceAction22(115),
+                       new ReduceAction467(115),
+                       new ReduceAction468(116),
+                       new ReduceAction468(116),
+                       new ReduceAction470(117),
+                       new ReduceAction471(117),
+                       new ReduceAction23(117),
+                       new ReduceAction22(118),
+                       new ReduceAction474(118),
+                       new ReduceAction475(119),
+                       new ReduceAction476(119),
+                       new ReduceAction468(119),
+                       new ReduceAction46(120),
+                       new ReduceAction47(120),
+                       new ReduceAction48(120),
+                       new ReduceAction55(120),
+                       new ReduceAction56(120),
+                       new ReduceAction74(121),
+                       new ReduceAction75(121),
+                       new ReduceAction84(122),
+                       new ReduceAction85(122),
+                       new ReduceAction86(122),
+                       new ReduceAction87(122),
+                       new ReduceAction88(122),
+                       new ReduceAction89(122),
+                       new ReduceAction90(122),
+                       new ReduceAction91(122),
+                       new ReduceAction92(122),
+                       new ReduceAction93(122),
+                       new ReduceAction94(122),
+                       new ReduceAction95(122),
+                       new ReduceAction96(122),
+                       new ReduceAction97(122),
+                       new ReduceAction98(122),
+                       new ReduceAction99(122),
+                       new ReduceAction100(122),
+                       new ReduceAction101(122),
+                       new ReduceAction102(122),
+                       new ReduceAction103(122),
+                       new ReduceAction104(122),
+                       new ReduceAction105(122),
+                       new ReduceAction460(123),
+                       new ReduceAction461(123),
+                       new ReduceAction462(123),
+                       new ReduceAction461(123),
+                       new ReduceAction144(124),
+                       new ReduceAction145(124),
+                       new ReduceAction157(125),
+                       new ReduceAction280(125),
+                       new ReduceAction157(126),
+                       new ReduceAction282(126),
+                       new ReduceAction283(126),
+                       new ReduceAction284(126),
+                       new ReduceAction285(126),
+                       new ReduceAction157(127),
+                       new ReduceAction287(127),
+                       new ReduceAction157(128),
+                       new ReduceAction289(128),
+                       new ReduceAction290(128),
+                       new ReduceAction291(128),
+                       new ReduceAction292(128),
+                       new ReduceAction293(128),
+                       new ReduceAction294(128),
+                       new ReduceAction295(128),
+                       new ReduceAction296(128),
+                       new ReduceAction157(129),
+                       new ReduceAction298(129),
+                       new ReduceAction157(130),
+                       new ReduceAction300(130),
+                       new ReduceAction157(131),
+                       new ReduceAction302(131),
+                       new ReduceAction157(132),
+                       new ReduceAction304(132),
+                       new ReduceAction305(132),
+                       new ReduceAction157(133),
+                       new ReduceAction307(133),
+                       new ReduceAction308(133),
+                       new ReduceAction157(134),
+                       new ReduceAction310(134),
+                       new ReduceAction311(134),
+                       new ReduceAction312(134),
+                       new ReduceAction157(135),
+                       new ReduceAction314(135),
+                       new ReduceAction157(136),
+                       new ReduceAction316(136),
+                       new ReduceAction317(136),
+                       new ReduceAction318(136),
+                       new ReduceAction319(136),
+                       new ReduceAction157(137),
+                       new ReduceAction321(137),
+                       new ReduceAction322(137),
+                       new ReduceAction323(137),
+                       new ReduceAction324(137),
+                       new ReduceAction157(138),
+                       new ReduceAction326(138),
+                       new ReduceAction327(138),
+                       new ReduceAction181(138),
+                       new ReduceAction185(138),
+                       new ReduceAction329(138),
+                       new ReduceAction337(138),
+                       new ReduceAction182(138),
+                       new ReduceAction186(138),
+                       new ReduceAction331(138),
+                       new ReduceAction339(138),
+                       new ReduceAction183(138),
+                       new ReduceAction187(138),
+                       new ReduceAction333(138),
+                       new ReduceAction341(138),
+                       new ReduceAction182(138),
+                       new ReduceAction186(138),
+                       new ReduceAction331(138),
+                       new ReduceAction339(138),
+                       new ReduceAction189(138),
+                       new ReduceAction345(138),
+                       new ReduceAction190(138),
+                       new ReduceAction191(138),
+                       new ReduceAction347(138),
+                       new ReduceAction349(138),
+                       new ReduceAction351(138),
+                       new ReduceAction352(138),
+                       new ReduceAction353(138),
+                       new ReduceAction354(138),
+                       new ReduceAction355(138),
+                       new ReduceAction356(138),
+                       new ReduceAction353(138),
+                       new ReduceAction354(138),
+                       new ReduceAction359(138),
+                       new ReduceAction360(138),
+                       new ReduceAction361(138),
+                       new ReduceAction362(138),
+                       new ReduceAction363(139),
+                       new ReduceAction364(139),
+                       new ReduceAction365(139),
+                       new ReduceAction366(139),
+                       new ReduceAction367(139),
+                       new ReduceAction368(139),
+                       new ReduceAction369(139),
+                       new ReduceAction370(139),
+                       new ReduceAction371(139),
+                       new ReduceAction157(139),
+                       new ReduceAction157(139),
+                       new ReduceAction144(140),
+                       new ReduceAction145(140),
+                       new ReduceAction146(140),
+                       new ReduceAction147(140),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction167(141),
+                       new ReduceAction168(141),
+                       new ReduceAction169(141),
+                       new ReduceAction170(141),
+                       new ReduceAction171(141),
+                       new ReduceAction172(141),
+                       new ReduceAction173(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction157(141),
+                       new ReduceAction181(141),
+                       new ReduceAction182(141),
+                       new ReduceAction183(141),
+                       new ReduceAction182(141),
+                       new ReduceAction185(141),
+                       new ReduceAction186(141),
+                       new ReduceAction187(141),
+                       new ReduceAction186(141),
+                       new ReduceAction189(141),
+                       new ReduceAction190(141),
+                       new ReduceAction191(141),
+                       new ReduceAction192(141),
+                       new ReduceAction193(141),
+                       new ReduceAction192(141),
+                       new ReduceAction195(141),
+                       new ReduceAction196(141),
+                       new ReduceAction195(141),
+                       new ReduceAction198(141),
+                       new ReduceAction205(142),
+                       new ReduceAction206(142),
+                       new ReduceAction207(142),
+                       new ReduceAction208(142),
+                       new ReduceAction209(142),
+                       new ReduceAction210(142),
+                       new ReduceAction211(142),
+                       new ReduceAction212(142),
+                       new ReduceAction209(142),
+                       new ReduceAction210(142),
+                       new ReduceAction215(142),
+                       new ReduceAction216(142),
+                       new ReduceAction217(142),
+                       new ReduceAction218(142),
+                       new ReduceAction219(142),
+                       new ReduceAction220(142),
+                       new ReduceAction217(142),
+                       new ReduceAction218(142),
+                       new ReduceAction223(142),
+                       new ReduceAction224(142),
+                       new ReduceAction225(142),
+                       new ReduceAction226(142),
+                       new ReduceAction227(142),
+                       new ReduceAction228(142),
+                       new ReduceAction229(142),
+                       new ReduceAction230(142),
+                       new ReduceAction231(142),
+                       new ReduceAction228(142),
+                       new ReduceAction229(142),
+                       new ReduceAction234(142),
+                       new ReduceAction235(142),
+                       new ReduceAction236(142),
+                       new ReduceAction237(142),
+                       new ReduceAction238(142),
+                       new ReduceAction239(142),
+                       new ReduceAction236(142),
+                       new ReduceAction237(142),
+                       new ReduceAction242(142),
+                       new ReduceAction157(143),
+                       new ReduceAction280(143),
+                       new ReduceAction157(144),
+                       new ReduceAction282(144),
+                       new ReduceAction283(144),
+                       new ReduceAction284(144),
+                       new ReduceAction285(144),
+                       new ReduceAction157(145),
+                       new ReduceAction287(145),
+                       new ReduceAction157(146),
+                       new ReduceAction289(146),
+                       new ReduceAction290(146),
+                       new ReduceAction291(146),
+                       new ReduceAction292(146),
+                       new ReduceAction293(146),
+                       new ReduceAction294(146),
+                       new ReduceAction295(146),
+                       new ReduceAction296(146),
+                       new ReduceAction157(147),
+                       new ReduceAction298(147),
+                       new ReduceAction157(148),
+                       new ReduceAction300(148),
+                       new ReduceAction157(149),
+                       new ReduceAction302(149),
+                       new ReduceAction157(150),
+                       new ReduceAction304(150),
+                       new ReduceAction305(150),
+                       new ReduceAction157(151),
+                       new ReduceAction307(151),
+                       new ReduceAction308(151),
+                       new ReduceAction157(152),
+                       new ReduceAction310(152),
+                       new ReduceAction311(152),
+                       new ReduceAction312(152),
+                       new ReduceAction157(153),
+                       new ReduceAction314(153),
+                       new ReduceAction157(154),
+                       new ReduceAction316(154),
+                       new ReduceAction317(154),
+                       new ReduceAction318(154),
+                       new ReduceAction319(154),
+                       new ReduceAction157(155),
+                       new ReduceAction321(155),
+                       new ReduceAction322(155),
+                       new ReduceAction323(155),
+                       new ReduceAction324(155),
+                       new ReduceAction157(156),
+                       new ReduceAction326(156),
+                       new ReduceAction327(156),
+                       new ReduceAction181(156),
+                       new ReduceAction329(156),
+                       new ReduceAction182(156),
+                       new ReduceAction331(156),
+                       new ReduceAction183(156),
+                       new ReduceAction333(156),
+                       new ReduceAction182(156),
+                       new ReduceAction331(156),
+                       new ReduceAction185(156),
+                       new ReduceAction337(156),
+                       new ReduceAction186(156),
+                       new ReduceAction339(156),
+                       new ReduceAction187(156),
+                       new ReduceAction341(156),
+                       new ReduceAction186(156),
+                       new ReduceAction339(156),
+                       new ReduceAction189(156),
+                       new ReduceAction345(156),
+                       new ReduceAction190(156),
+                       new ReduceAction347(156),
+                       new ReduceAction191(156),
+                       new ReduceAction349(156),
+                       new ReduceAction350(156),
+                       new ReduceAction351(156),
+                       new ReduceAction352(156),
+                       new ReduceAction353(156),
+                       new ReduceAction354(156),
+                       new ReduceAction355(156),
+                       new ReduceAction356(156),
+                       new ReduceAction353(156),
+                       new ReduceAction354(156),
+                       new ReduceAction359(156),
+                       new ReduceAction360(156),
+                       new ReduceAction361(156),
+                       new ReduceAction362(156),
+                       new ReduceAction363(157),
+                       new ReduceAction364(157),
+                       new ReduceAction365(157),
+                       new ReduceAction366(157),
+                       new ReduceAction367(157),
+                       new ReduceAction368(157),
+                       new ReduceAction369(157),
+                       new ReduceAction370(157),
+                       new ReduceAction371(157),
+                       new ReduceAction157(157),
+                       new ReduceAction396(158),
+                       new ReduceAction397(158),
+                       new ReduceAction398(159),
+                       new ReduceAction22(159),
+                       new ReduceAction400(160),
+                       new ReduceAction400(161),
+                       new ReduceAction381(162),
+                       new ReduceAction382(162),
+                       new ReduceAction424(163),
+                       new ReduceAction157(163),
+                       new ReduceAction157(163),
+                       new ReduceAction427(163),
+                       new ReduceAction428(163),
+                       new ReduceAction144(164),
+                       new ReduceAction145(164),
+                       new ReduceAction157(165),
+                       new ReduceAction280(165),
+                       new ReduceAction157(166),
+                       new ReduceAction282(166),
+                       new ReduceAction283(166),
+                       new ReduceAction284(166),
+                       new ReduceAction285(166),
+                       new ReduceAction157(167),
+                       new ReduceAction287(167),
+                       new ReduceAction157(168),
+                       new ReduceAction289(168),
+                       new ReduceAction290(168),
+                       new ReduceAction291(168),
+                       new ReduceAction292(168),
+                       new ReduceAction293(168),
+                       new ReduceAction294(168),
+                       new ReduceAction295(168),
+                       new ReduceAction296(168),
+                       new ReduceAction157(169),
+                       new ReduceAction298(169),
+                       new ReduceAction157(170),
+                       new ReduceAction300(170),
+                       new ReduceAction157(171),
+                       new ReduceAction302(171),
+                       new ReduceAction157(172),
+                       new ReduceAction304(172),
+                       new ReduceAction305(172),
+                       new ReduceAction157(173),
+                       new ReduceAction307(173),
+                       new ReduceAction308(173),
+                       new ReduceAction157(174),
+                       new ReduceAction310(174),
+                       new ReduceAction311(174),
+                       new ReduceAction312(174),
+                       new ReduceAction157(175),
+                       new ReduceAction314(175),
+                       new ReduceAction157(176),
+                       new ReduceAction316(176),
+                       new ReduceAction317(176),
+                       new ReduceAction318(176),
+                       new ReduceAction319(176),
+                       new ReduceAction157(177),
+                       new ReduceAction321(177),
+                       new ReduceAction322(177),
+                       new ReduceAction836(177),
+                       new ReduceAction157(178),
+                       new ReduceAction838(178),
+                       new ReduceAction839(178),
+                       new ReduceAction840(178),
+                       new ReduceAction841(178),
+                       new ReduceAction842(178),
+                       new ReduceAction181(178),
+                       new ReduceAction329(178),
+                       new ReduceAction841(178),
+                       new ReduceAction842(178),
+                       new ReduceAction189(178),
+                       new ReduceAction345(178),
+                       new ReduceAction849(178),
+                       new ReduceAction850(178),
+                       new ReduceAction351(178),
+                       new ReduceAction352(178),
+                       new ReduceAction353(178),
+                       new ReduceAction354(178),
+                       new ReduceAction355(178),
+                       new ReduceAction356(178),
+                       new ReduceAction353(178),
+                       new ReduceAction354(178),
+                       new ReduceAction359(178),
+                       new ReduceAction360(178),
+                       new ReduceAction361(178),
+                       new ReduceAction362(178),
+                       new ReduceAction363(179),
+                       new ReduceAction364(179),
+                       new ReduceAction365(179),
+                       new ReduceAction366(179),
+                       new ReduceAction367(179),
+                       new ReduceAction368(179),
+                       new ReduceAction369(179),
+                       new ReduceAction370(179),
+                       new ReduceAction371(179),
+                       new ReduceAction157(179),
+                       new ReduceAction873(180),
+                       new ReduceAction874(180),
+                       new ReduceAction154(181),
+                       new ReduceAction155(181),
+                       new ReduceAction156(181),
+                       new ReduceAction157(181),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction167(182),
+                       new ReduceAction168(182),
+                       new ReduceAction169(182),
+                       new ReduceAction170(182),
+                       new ReduceAction171(182),
+                       new ReduceAction172(182),
+                       new ReduceAction173(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction157(182),
+                       new ReduceAction181(182),
+                       new ReduceAction182(182),
+                       new ReduceAction183(182),
+                       new ReduceAction182(182),
+                       new ReduceAction185(182),
+                       new ReduceAction186(182),
+                       new ReduceAction187(182),
+                       new ReduceAction186(182),
+                       new ReduceAction189(182),
+                       new ReduceAction190(182),
+                       new ReduceAction191(182),
+                       new ReduceAction192(182),
+                       new ReduceAction193(182),
+                       new ReduceAction192(182),
+                       new ReduceAction195(182),
+                       new ReduceAction196(182),
+                       new ReduceAction195(182),
+                       new ReduceAction198(182),
+                       new ReduceAction254(183),
+                       new ReduceAction255(183),
+                       new ReduceAction256(184),
+                       new ReduceAction263(185),
+                       new ReduceAction264(185),
+                       new ReduceAction265(186),
+                       new ReduceAction266(186),
+                       new ReduceAction267(187),
+                       new ReduceAction268(187),
+                       new ReduceAction269(188),
+                       new ReduceAction270(188),
+                       new ReduceAction274(189),
+                       new ReduceAction275(189),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction167(190),
+                       new ReduceAction168(190),
+                       new ReduceAction169(190),
+                       new ReduceAction170(190),
+                       new ReduceAction171(190),
+                       new ReduceAction172(190),
+                       new ReduceAction173(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction157(190),
+                       new ReduceAction181(190),
+                       new ReduceAction182(190),
+                       new ReduceAction183(190),
+                       new ReduceAction182(190),
+                       new ReduceAction185(190),
+                       new ReduceAction186(190),
+                       new ReduceAction187(190),
+                       new ReduceAction186(190),
+                       new ReduceAction189(190),
+                       new ReduceAction190(190),
+                       new ReduceAction191(190),
+                       new ReduceAction192(190),
+                       new ReduceAction193(190),
+                       new ReduceAction192(190),
+                       new ReduceAction195(190),
+                       new ReduceAction196(190),
+                       new ReduceAction195(190),
+                       new ReduceAction198(190),
+                       new ReduceAction154(191),
+                       new ReduceAction155(191),
+                       new ReduceAction156(191),
+                       new ReduceAction154(192),
+                       new ReduceAction155(192),
+                       new ReduceAction156(192),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction167(193),
+                       new ReduceAction168(193),
+                       new ReduceAction169(193),
+                       new ReduceAction170(193),
+                       new ReduceAction171(193),
+                       new ReduceAction172(193),
+                       new ReduceAction173(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction157(193),
+                       new ReduceAction198(193),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction167(194),
+                       new ReduceAction168(194),
+                       new ReduceAction169(194),
+                       new ReduceAction170(194),
+                       new ReduceAction171(194),
+                       new ReduceAction172(194),
+                       new ReduceAction173(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction157(194),
+                       new ReduceAction198(194),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction167(195),
+                       new ReduceAction168(195),
+                       new ReduceAction169(195),
+                       new ReduceAction170(195),
+                       new ReduceAction171(195),
+                       new ReduceAction172(195),
+                       new ReduceAction173(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction157(195),
+                       new ReduceAction198(195),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction167(196),
+                       new ReduceAction168(196),
+                       new ReduceAction169(196),
+                       new ReduceAction170(196),
+                       new ReduceAction171(196),
+                       new ReduceAction172(196),
+                       new ReduceAction173(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction157(196),
+                       new ReduceAction198(196),
+                       new ReduceAction430(197),
+                       new ReduceAction432(197),
+                       new ReduceAction1032(198),
+                       new ReduceAction1033(198),
+                       new ReduceAction1034(199),
+                       new ReduceAction1035(199),
+                       new ReduceAction1036(200),
+                       new ReduceAction1037(200),
+                       new ReduceAction1038(201),
+                       new ReduceAction1039(201),
+                       new ReduceAction43(202),
+                       new ReduceAction1041(202),
+                       new ReduceAction1042(203),
+                       new ReduceAction1043(203),
+                       new ReduceAction1044(204),
+                       new ReduceAction1045(204),
+                       new ReduceAction148(205),
+                       new ReduceAction1047(205),
+                       new ReduceAction381(206),
+                       new ReduceAction1049(206),
+                       new ReduceAction381(207),
+                       new ReduceAction1049(207),
+                       new ReduceAction381(208),
+                       new ReduceAction1049(208),
+                       new ReduceAction445(209),
+                       new ReduceAction1055(209),
+                       new ReduceAction403(210),
+                       new ReduceAction1057(210),
+                       new ReduceAction403(211),
+                       new ReduceAction1057(211),
+                       new ReduceAction381(212),
+                       new ReduceAction1049(212),
+                       new ReduceAction381(213),
+                       new ReduceAction1049(213),
+                       new ReduceAction446(214),
+                       new ReduceAction1065(214),
+                       new ReduceAction1066(215),
+                       new ReduceAction1067(215),
+                       new ReduceAction1068(216),
+                       new ReduceAction1069(216)
                )
        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)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var pclassdefnode5 = nodearraylist1
+                                       assert pclassdefnode5 isa nullable AClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode4,
-                                               listnode5
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1557,17 +1113,23 @@ private class ReduceAction1
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
+                                       var pclassdefnode5 = nodearraylist2
+                                       assert pclassdefnode5 isa nullable AClassdef
+                                       if pclassdefnode5 != null then
+                                               listnode6.add(pclassdefnode5)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode4,
-                                               listnode5
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1578,18 +1140,24 @@ private class ReduceAction2
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
                                        var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
+                                       var pclassdefnode6 = nodearraylist2
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1600,21 +1168,27 @@ private class ReduceAction3
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
                                        var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1625,18 +1199,24 @@ private class ReduceAction4
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
+                                       var pclassdefnode6 = nodearraylist2
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1647,21 +1227,27 @@ private class ReduceAction5
        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 listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode5,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1672,22 +1258,28 @@ private class ReduceAction6
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
                                        var listnode6 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = 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 pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode6,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1698,12 +1290,13 @@ private class ReduceAction7
        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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
@@ -1712,11 +1305,16 @@ private class ReduceAction7
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode7 = nodearraylist4
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode6,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1727,18 +1325,24 @@ private class ReduceAction8
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
                                        var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode6 = nodearraylist2
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       listnode7 = concat(listnode7, listnode5)
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode4,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1749,21 +1353,27 @@ private class ReduceAction9
        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 listnode6 = new Array[Object]
+                                       var listnode7 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
+                                       var pclassdefnode6 = nodearraylist3
+                                       assert pclassdefnode6 isa nullable AClassdef
+                                       listnode7 = concat(listnode7, listnode5)
+                                       if pclassdefnode6 != null then
+                                               listnode7.add(pclassdefnode6)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode4,
-                                               listnode6
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1774,22 +1384,28 @@ private class ReduceAction10
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
                                        var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
                                        var listnode6 = nodearraylist2
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1800,12 +1416,13 @@ private class ReduceAction11
        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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
@@ -1813,12 +1430,17 @@ private class ReduceAction11
                                        listnode4 = concat(listnode4, listnode3)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist4
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1829,22 +1451,28 @@ private class ReduceAction12
        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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist2
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist3
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode3,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1855,12 +1483,13 @@ private class ReduceAction13
        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 listnode7 = new Array[Object]
+                                       var listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode4 = nodearraylist2
@@ -1868,12 +1497,17 @@ private class ReduceAction13
                                        listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pclassdefnode7 = nodearraylist4
+                                       assert pclassdefnode7 isa nullable AClassdef
+                                       listnode8 = concat(listnode8, listnode6)
+                                       if pclassdefnode7 != null then
+                                               listnode8.add(pclassdefnode7)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode3,
                                                listnode5,
-                                               listnode7
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1884,12 +1518,13 @@ private class ReduceAction14
        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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
@@ -1898,12 +1533,17 @@ private class ReduceAction14
                                        listnode6 = concat(listnode6, listnode5)
                                        var listnode7 = nodearraylist3
                                        assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode8 = nodearraylist4
+                                       assert pclassdefnode8 isa nullable AClassdef
+                                       listnode9 = concat(listnode9, listnode7)
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                null,
                                                listnode4,
                                                listnode6,
-                                               listnode8
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1914,13 +1554,14 @@ private class ReduceAction15
        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 listnode8 = new Array[Object]
+                                       var listnode9 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
@@ -1931,12 +1572,17 @@ private class ReduceAction15
                                        listnode6 = concat(listnode6, listnode5)
                                        var listnode7 = nodearraylist4
                                        assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
+                                       var pclassdefnode8 = nodearraylist5
+                                       assert pclassdefnode8 isa nullable AClassdef
+                                       listnode9 = concat(listnode9, listnode7)
+                                       if pclassdefnode8 != null then
+                                               listnode9.add(pclassdefnode8)
+                                       end
                                        var pmodulenode1: nullable AModule = new AModule.init_amodule(
                                                pmoduledeclnode2,
                                                listnode4,
                                                listnode6,
-                                               listnode8
+                                               listnode9
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1947,27 +1593,35 @@ private class ReduceAction16
        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 listnode8 = 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmodulenode5 = nodearraylist4
+                                       assert tkwmodulenode5 isa nullable TKwmodule
+                                       var pmodulenamenode6 = nodearraylist6
+                                       assert pmodulenamenode6 isa nullable AModuleName
+                                       var pannotationsnode7 = nodearraylist7
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmodulenode5,
+                                               pmodulenamenode6,
+                                               pannotationsnode7
                                        )
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1976,30 +1630,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 listnode8 = 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
-                                       )
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode8
+                                       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
@@ -2008,31 +1661,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 listnode9 = 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
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode9
+                                       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
@@ -2041,34 +1688,9 @@ private class ReduceAction19
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode9 = 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
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
+                                       var pclassdefnode1 = nodearraylist1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2080,28 +1702,15 @@ private class ReduceAction20
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode9 = 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
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode9
+                                       var pclassdefnode1: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode3
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2110,34 +1719,17 @@ private class ReduceAction21
        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 listnode9 = 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
-                                       )
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode9
+                                       var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
+                                               listnode3
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2146,35 +1738,7 @@ private class ReduceAction22
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode10 = 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
-                                       )
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2183,38 +1747,8 @@ private class ReduceAction23
        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 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 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
-                                       )
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode10
-                                       )
-                                       node_list = pmodulenode1
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2225,10842 +1759,71 @@ private class ReduceAction24
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = 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
-                                       )
-                                       listnode9 = concat(listnode9, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
                                                null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
+                                               pexprnode3
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction25
+private class ReduceAction26
        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 listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode9 = 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
+                                       var listnode11 = new Array[Object]
+                                       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 pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
                                        assert listnode7 isa Array[Object]
                                        listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
-                                       )
-                                       listnode9 = concat(listnode9, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode9.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode9
-                                       )
-                                       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 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 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
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       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 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 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
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode10
-                                       )
-                                       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 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 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
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       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 ReduceAction29
-       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 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
-                                       )
-                                       listnode10 = concat(listnode10, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode10.add(pclassdefnode7)
-                                       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 ReduceAction30
-       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 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
-                                       )
-                                       listnode11 = concat(listnode11, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode11.add(pclassdefnode8)
-                                       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 ReduceAction31
-       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 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
-                                       )
-                                       listnode11 = concat(listnode11, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode11.add(pclassdefnode8)
-                                       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 ReduceAction32
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pclassdefnode5 = nodearraylist1
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode6
-                                       )
-                                       node_list = pmodulenode1
-                                       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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode6
-                                       )
-                                       node_list = pmodulenode1
-                                       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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pclassdefnode6 = nodearraylist2
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction35
-       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 listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction36
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pclassdefnode6 = nodearraylist2
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction37
-       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 listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction38
-       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 listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode8 = 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 pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction39
-       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 listnode8 = 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 pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction40
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       var pclassdefnode6 = nodearraylist2
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       listnode7 = concat(listnode7, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode4,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction41
-       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 listnode7 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       var pclassdefnode6 = nodearraylist3
-                                       assert pclassdefnode6 isa nullable AClassdef
-                                       listnode7 = concat(listnode7, listnode5)
-                                       if pclassdefnode6 != null then
-                                               listnode7.add(pclassdefnode6)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode4,
-                                               listnode7
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction42
-       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 listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction43
-       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 listnode8 = 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 pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction44
-       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 listnode5 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction45
-       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 listnode8 = 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 pclassdefnode7 = nodearraylist4
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       listnode8 = concat(listnode8, listnode6)
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5,
-                                               listnode8
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction46
-       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 listnode9 = 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 pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       listnode9 = concat(listnode9, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode4,
-                                               listnode6,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction47
-       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 listnode9 = 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 pclassdefnode8 = nodearraylist5
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       listnode9 = concat(listnode9, listnode7)
-                                       if pclassdefnode8 != null then
-                                               listnode9.add(pclassdefnode8)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6,
-                                               listnode9
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction48
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var 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
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction49
-       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 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
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction50
-       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 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
-                                       )
-                                       node_list = pmodulenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction51
-       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 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
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction52
-       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 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 ReduceAction53
-       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 ReduceAction54
-       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 ReduceAction55
-       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 ReduceAction56
-       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 ReduceAction57
-       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 ReduceAction58
-       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 ReduceAction59
-       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 ReduceAction60
-       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 ReduceAction61
-       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 ReduceAction62
-       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 ReduceAction63
-       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 ReduceAction64
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwmodulenode3 = nodearraylist2
-                                       assert tkwmodulenode3 isa nullable TKwmodule
-                                       var pmodulenamenode4 = nodearraylist4
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
-                                               pdocnode2,
-                                               tkwmodulenode3,
-                                               pmodulenamenode4,
-                                               null
-                                       )
-                                       node_list = pmoduledeclnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction65
-       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 ReduceAction66
-       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 pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var pmodulenamenode4 = nodearraylist5
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               pmodulenamenode4,
-                                               null
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction67
-       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 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var pmodulenamenode4 = nodearraylist5
-                                       assert pmodulenamenode4 isa nullable AModuleName
-                                       var pannotationsnode5 = nodearraylist6
-                                       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 ReduceAction68
-       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 pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var tkwendnode4 = nodearraylist5
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
-                                               pvisibilitynode2,
-                                               tkwimportnode3,
-                                               tkwendnode4
-                                       )
-                                       node_list = pimportnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction69
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var ppropdefnode2 = nodearraylist1
-                                       assert ppropdefnode2 isa nullable APropdef
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
-                                               listnode3
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction70
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       node_list = null
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction71
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
-                                               null,
-                                               pexprnode3
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction73
-       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 listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist7
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction74
-       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 listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var tkwendnode12 = nodearraylist8
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction75
-       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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction76
-       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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction77
-       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 listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist8
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction78
-       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 listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var tkwendnode17 = nodearraylist9
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction79
-       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 listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction80
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction81
-       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 listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist8
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction82
-       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 listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction83
-       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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction84
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction85
-       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 listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist9
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction86
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var tkwendnode17 = nodearraylist10
-                                       assert tkwendnode17 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode16,
-                                               tkwendnode17
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction87
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction88
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction89
-       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 listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist6
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction90
-       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 listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction91
-       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 listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction92
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction93
-       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 listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist7
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction94
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction95
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction96
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction97
-       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 listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction98
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction99
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction100
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction101
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction102
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction103
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction104
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction105
-       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 listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist8
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction106
-       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 listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction107
-       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 listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction108
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction109
-       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 listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist7
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist9
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction110
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction111
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist8
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction112
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction113
-       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 listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist9
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction114
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction115
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction116
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction117
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist10
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction118
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode15 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var tkwendnode18 = nodearraylist11
-                                       assert tkwendnode18 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode15,
-                                               listnode17,
-                                               tkwendnode18
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction119
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction120
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction121
-       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 listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist6
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist9
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction122
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               null,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction123
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist8
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist10
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction124
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist9
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist11
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               null,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction125
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist7
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist8
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist10
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction126
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               null,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction127
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist8
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist9
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist11
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction128
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist10
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist12
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               null,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction129
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist6
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist10
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction130
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode11 = new Array[Object]
-                                       var listnode13 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var pexterncodeblocknode9 = nodearraylist7
-                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var listnode12 = nodearraylist9
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var tkwendnode14 = nodearraylist11
-                                       assert tkwendnode14 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               null,
-                                               pexterncodeblocknode9,
-                                               listnode11,
-                                               listnode13,
-                                               tkwendnode14
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction131
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist9
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist11
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction132
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode12 = new Array[Object]
-                                       var listnode14 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var listnode13 = nodearraylist10
-                                       assert listnode13 isa Array[Object]
-                                       listnode14 = concat(listnode14, listnode13)
-                                       var tkwendnode15 = nodearraylist12
-                                       assert tkwendnode15 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               null,
-                                               pexterncodeblocknode10,
-                                               listnode12,
-                                               listnode14,
-                                               tkwendnode15
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction133
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist6
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist7
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist8
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist9
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist11
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction134
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode16 = new Array[Object]
-                                       var listnode18 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode12 = new Array[Object]
-                                       var listnode11 = nodearraylist7
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var pannotationsnode8: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode12,
-                                               null
-                                       )
-                                       var pexterncodeblocknode14 = nodearraylist8
-                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
-                                       var listnode15 = nodearraylist9
-                                       assert listnode15 isa Array[Object]
-                                       listnode16 = concat(listnode16, listnode15)
-                                       var listnode17 = nodearraylist10
-                                       assert listnode17 isa Array[Object]
-                                       listnode18 = concat(listnode18, listnode17)
-                                       var tkwendnode19 = nodearraylist12
-                                       assert tkwendnode19 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               pannotationsnode8,
-                                               pexterncodeblocknode14,
-                                               listnode16,
-                                               listnode18,
-                                               tkwendnode19
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction135
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var pclasskindnode5 = nodearraylist3
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist7
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist8
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist9
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist10
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist12
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction136
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode17 = new Array[Object]
-                                       var listnode19 = new Array[Object]
-                                       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 pclasskindnode5 = nodearraylist4
-                                       assert pclasskindnode5 isa nullable AClasskind
-                                       var tclassidnode6 = nodearraylist6
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode13 = new Array[Object]
-                                       var listnode12 = nodearraylist8
-                                       assert listnode12 isa Array[Object]
-                                       listnode13 = concat(listnode13, listnode12)
-                                       var pannotationsnode9: nullable AAnnotations = new AAnnotations.init_aannotations(
-                                               null,
-                                               null,
-                                               listnode13,
-                                               null
-                                       )
-                                       var pexterncodeblocknode15 = nodearraylist9
-                                       assert pexterncodeblocknode15 isa nullable AExternCodeBlock
-                                       var listnode16 = nodearraylist10
-                                       assert listnode16 isa Array[Object]
-                                       listnode17 = concat(listnode17, listnode16)
-                                       var listnode18 = nodearraylist11
-                                       assert listnode18 isa Array[Object]
-                                       listnode19 = concat(listnode19, listnode18)
-                                       var tkwendnode20 = nodearraylist13
-                                       assert tkwendnode20 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               pannotationsnode9,
-                                               pexterncodeblocknode15,
-                                               listnode17,
-                                               listnode19,
-                                               tkwendnode20
-                                       )
-                                       node_list = pclassdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction137
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwclassnode2 = nodearraylist1
-                                       assert tkwclassnode2 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
-                                               tkwclassnode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction138
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwabstractnode2 = nodearraylist1
-                                       assert tkwabstractnode2 isa nullable TKwabstract
-                                       var tkwclassnode3 = nodearraylist2
-                                       assert tkwclassnode3 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
-                                               tkwabstractnode2,
-                                               tkwclassnode3
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction139
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwinterfacenode2 = nodearraylist1
-                                       assert tkwinterfacenode2 isa nullable TKwinterface
-                                       var pclasskindnode1: nullable AInterfaceClasskind = new AInterfaceClasskind.init_ainterfaceclasskind(
-                                               tkwinterfacenode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction140
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwenumnode2 = nodearraylist1
-                                       assert tkwenumnode2 isa nullable TKwenum
-                                       var pclasskindnode1: nullable AEnumClasskind = new AEnumClasskind.init_aenumclasskind(
-                                               tkwenumnode2
-                                       )
-                                       node_list = pclasskindnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction141
-       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 ReduceAction142
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwexternnode2 = nodearraylist1
-                                       assert tkwexternnode2 isa nullable TKwextern
-                                       var tkwclassnode3 = nodearraylist2
-                                       assert tkwclassnode3 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AExternClasskind = new AExternClasskind.init_aexternclasskind(
-                                               tkwexternnode2,
-                                               tkwclassnode3
-                                       )
-                                       node_list = pclasskindnode1
-                                       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 nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction144
-       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 listnode3 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       var listnode2 = nodearraylist4
-                                       assert listnode2 isa Array[Object]
-                                       if pformaldefnode1 != null then
-                                               listnode3.add(pformaldefnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction145
-       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 pformaldefnode1 = nodearraylist3
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction146
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction147
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pannotationsnode4 = nodearraylist2
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               null,
-                                               pannotationsnode4
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction148
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               ptypenode3,
-                                               null
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction149
-       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 tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode4 = nodearraylist2
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
-                                               ptypenode3,
-                                               pannotationsnode4
-                                       )
-                                       node_list = pformaldefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction150
-       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 tkwsupernode2 = nodearraylist2
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwsupernode2,
-                                               ptypenode3,
-                                               null
-                                       )
-                                       node_list = psuperclassnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction151
-       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 tkwsupernode2 = nodearraylist2
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode4 = nodearraylist5
-                                       assert pannotationsnode4 isa nullable AAnnotations
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwsupernode2,
-                                               ptypenode3,
-                                               pannotationsnode4
-                                       )
-                                       node_list = psuperclassnode1
-                                       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 nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var ppropdefnode1 = nodearraylist1
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction153
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction154
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction155
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction156
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction157
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction158
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction159
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction160
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction161
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction162
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction163
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction164
-       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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       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,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction165
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction166
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable ADeferredMethPropdef = new ADeferredMethPropdef.init_adeferredmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction167
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction168
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AInternMethPropdef = new AInternMethPropdef.init_ainternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction169
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction170
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction171
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction172
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction173
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction174
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction175
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction176
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction177
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction178
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction179
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction180
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction181
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction182
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction183
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction184
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist11
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction185
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction186
-       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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction187
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction188
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction189
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction190
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction191
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction192
-       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 pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction193
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction194
-       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 pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction195
-       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 pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction196
-       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 pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction197
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction198
-       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 tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction199
-       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 pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction200
-       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 pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction201
-       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 pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction202
-       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 pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction203
-       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 pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction204
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist8
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction205
-       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 pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction206
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction207
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction208
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction209
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction210
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction211
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction212
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction213
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist4
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction214
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction215
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction216
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction217
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist5
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction218
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist2
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist3
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction219
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist4
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist5
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist6
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist7
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction220
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode3 = nodearraylist2
-                                       assert pablenode3 isa nullable AAble
-                                       var pablenode4 = nodearraylist3
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist4
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist5
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist6
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tattridnode8 = nodearraylist7
-                                       assert tattridnode8 isa nullable TAttrid
-                                       var ptypenode10 = nodearraylist8
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist11
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction221
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction222
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction223
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction224
-       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 tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction225
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction226
-       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 pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction227
-       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 pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction228
-       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 pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction229
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist5
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction230
-       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 tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction231
-       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 pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction232
-       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 tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction233
-       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 pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist6
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction234
-       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 pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction235
-       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 pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist7
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction236
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist8
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction237
-       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 pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction238
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction239
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction240
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction241
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction242
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction243
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction244
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction245
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist8
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist7
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction246
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction247
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction248
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction249
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist5
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist9
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist8
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction250
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               null,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction251
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist6
-                                       assert pablenode4 isa nullable AAble
-                                       var pvisibilitynode6 = nodearraylist2
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist3
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist4
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist5
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist10
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist9
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction252
-       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
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pablenode4 = nodearraylist7
-                                       assert pablenode4 isa nullable AAble
-                                       var tkwredefnode5 = nodearraylist2
-                                       assert tkwredefnode5 isa nullable TKwredef
-                                       var pvisibilitynode6 = nodearraylist3
-                                       assert pvisibilitynode6 isa nullable AVisibility
-                                       var tkwvarnode7 = nodearraylist4
-                                       assert tkwvarnode7 isa nullable TKwvar
-                                       var tidnode9 = nodearraylist5
-                                       assert tidnode9 isa nullable TId
-                                       var ptypenode10 = nodearraylist6
-                                       assert ptypenode10 isa nullable AType
-                                       var pannotationsnode11 = nodearraylist11
-                                       assert pannotationsnode11 isa nullable AAnnotations
-                                       var pexprnode12 = nodearraylist10
-                                       assert pexprnode12 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pannotationsnode11,
-                                               pexprnode12
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction253
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist6
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction254
-       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 tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction255
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction256
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction257
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist5
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction258
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction259
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction260
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction261
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist6
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction262
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction263
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction264
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction265
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist5
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist7
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction266
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               null,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction267
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist3
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist8
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction268
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwinitnode5 = nodearraylist4
-                                       assert tkwinitnode5 isa nullable TKwinit
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var pexprnode9 = nodearraylist9
-                                       assert pexprnode9 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pannotationsnode8,
-                                               pexprnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction269
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction270
-       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 tkwredefnode3 = nodearraylist2
-                                       assert tkwredefnode3 isa nullable TKwredef
-                                       var pvisibilitynode4 = nodearraylist3
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable AType
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction271
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwtypenode5 = nodearraylist3
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist4
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist5
-                                       assert ptypenode7 isa nullable AType
-                                       var pannotationsnode8 = nodearraylist6
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction272
-       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 tkwtypenode5 = nodearraylist4
-                                       assert tkwtypenode5 isa nullable TKwtype
-                                       var tclassidnode6 = nodearraylist5
-                                       assert tclassidnode6 isa nullable TClassid
-                                       var ptypenode7 = nodearraylist6
-                                       assert ptypenode7 isa nullable AType
-                                       var pannotationsnode8 = nodearraylist7
-                                       assert pannotationsnode8 isa nullable AAnnotations
-                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7,
-                                               pannotationsnode8
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction273
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction274
-       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 AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction275
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction276
-       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 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 pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction277
-       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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction278
-       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 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 tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var listnode10 = nodearraylist8
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction279
-       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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
                                                null,
-                                               null
+                                               listnode11,
+                                               tkwendnode12
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction280
+private class ReduceAction27
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -13070,410 +1833,250 @@ private class ReduceAction280
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode8 = new Array[Object]
+                                       var listnode11 = new Array[Object]
                                        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 pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var pclasskindnode5 = nodearraylist4
+                                       assert pclasskindnode5 isa nullable AClasskind
+                                       var tclassidnode6 = nodearraylist6
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexterncodeblocknode9 = nodearraylist8
+                                       assert pexterncodeblocknode9 isa nullable AExternCodeBlock
+                                       var listnode10 = nodearraylist9
+                                       assert listnode10 isa Array[Object]
+                                       listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist10
+                                       assert tkwendnode12 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               null
+                                               pclasskindnode5,
+                                               tclassidnode6,
+                                               listnode8,
+                                               pexterncodeblocknode9,
+                                               listnode11,
+                                               tkwendnode12
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction281
+private class ReduceAction29
        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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwredefnode1 = nodearraylist1
+                                       node_list = tkwredefnode1
+                                       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 nodearraylist1 = p.pop
+                                       var tkwclassnode2 = nodearraylist1
+                                       assert tkwclassnode2 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
+                                               tkwclassnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction282
+private class ReduceAction31
        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 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 pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var tkwclassnode3 = nodearraylist2
+                                       assert tkwclassnode3 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AAbstractClasskind = new AAbstractClasskind.init_aabstractclasskind(
+                                               tkwabstractnode2,
+                                               tkwclassnode3
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction283
+private class ReduceAction32
        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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwinterfacenode2 = nodearraylist1
+                                       assert tkwinterfacenode2 isa nullable TKwinterface
+                                       var pclasskindnode1: nullable AInterfaceClasskind = new AInterfaceClasskind.init_ainterfaceclasskind(
+                                               tkwinterfacenode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction284
+private class ReduceAction33
        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 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 pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwenumnode2 = nodearraylist1
+                                       assert tkwenumnode2 isa nullable TKwenum
+                                       var pclasskindnode1: nullable AEnumClasskind = new AEnumClasskind.init_aenumclasskind(
+                                               tkwenumnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction285
+private class ReduceAction34
        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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
+                                       var tkwexternnode2 = nodearraylist1
+                                       assert tkwexternnode2 isa nullable TKwextern
+                                       var tkwclassnode3 = nodearraylist2
+                                       assert tkwclassnode3 isa nullable TKwclass
+                                       var pclasskindnode1: nullable AExternClasskind = new AExternClasskind.init_aexternclasskind(
+                                               tkwexternnode2,
+                                               tkwclassnode3
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction286
+private class ReduceAction35
        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 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 tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction287
+private class ReduceAction36
        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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               null
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode3 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist3
+                                       var listnode2 = nodearraylist4
+                                       assert listnode2 isa Array[Object]
+                                       if pformaldefnode1 != null then
+                                               listnode3.add(pformaldefnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction288
+private class ReduceAction37
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction38
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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 pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
+                                       var pformaldefnode1 = nodearraylist3
+                                       node_list = pformaldefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction39
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3,
                                                null
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pformaldefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction289
+private class ReduceAction40
        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 pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pannotationsnode4 = nodearraylist2
+                                       assert pannotationsnode4 isa nullable AAnnotations
+                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
+                                               tclassidnode2,
+                                               ptypenode3,
+                                               pannotationsnode4
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pformaldefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction290
+private class ReduceAction41
        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
@@ -13487,194 +2090,78 @@ private class ReduceAction290
                                        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 pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwsupernode5 = nodearraylist4
+                                       assert tkwsupernode5 isa nullable TKwsuper
+                                       var ptypenode6 = nodearraylist6
+                                       assert ptypenode6 isa nullable AType
+                                       var pannotationsnode7 = nodearraylist7
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
+                                               tkwsupernode5,
+                                               ptypenode6,
+                                               pannotationsnode7
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction291
+private class ReduceAction42
        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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction292
+private class ReduceAction43
        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 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 pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       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 ReduceAction293
+private class ReduceAction44
        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 pdocnode2 = nodearraylist1
-                                       assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
-                                       assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction294
+private class ReduceAction45
        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 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 tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null,
-                                               pexterncodeblocknode10
-                                       )
+                                       var ppropdefnode1 = nodearraylist1
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction295
+private class ReduceAction46
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13690,34 +2177,37 @@ private class ReduceAction295
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwmethnode5,
+                                               null,
                                                null,
-                                               pexterncodeblocknode10
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction296
+private class ReduceAction47
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13738,37 +2228,39 @@ private class ReduceAction296
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       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 tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwmethnode5,
                                                null,
-                                               pexterncodeblocknode10
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction297
+private class ReduceAction48
        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
@@ -13778,39 +2270,41 @@ private class ReduceAction297
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwmethnode5,
+                                               null,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction298
+private class ReduceAction49
        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
@@ -13823,36 +2317,35 @@ private class ReduceAction298
                                        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 pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction299
+private class ReduceAction50
        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
@@ -13862,40 +2355,41 @@ private class ReduceAction299
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction300
+private class ReduceAction51
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
@@ -13910,32 +2404,31 @@ private class ReduceAction300
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       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 pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction301
+private class ReduceAction52
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -13951,39 +2444,41 @@ private class ReduceAction301
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction302
+private class ReduceAction53
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -13999,32 +2494,33 @@ private class ReduceAction302
                                        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 tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction303
+private class ReduceAction54
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -14041,43 +2537,43 @@ private class ReduceAction303
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist8
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist9
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist10
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction304
+private class ReduceAction55
        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
@@ -14092,38 +2588,43 @@ private class ReduceAction304
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       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 tstringnode8 = nodearraylist9
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist10
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist11
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexterncallsnode11 = nodearraylist7
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist8
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwmethnode5,
+                                               null,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction305
+private class ReduceAction56
        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
@@ -14131,34 +2632,46 @@ private class ReduceAction305
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist5
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexterncallsnode11 = nodearraylist8
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist9
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
+                                               tkwmethnode5,
                                                null,
                                                null,
-                                               pexterncodeblocknode10
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction306
+private class ReduceAction57
        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
@@ -14171,32 +2684,38 @@ private class ReduceAction306
                                        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 pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               null,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction307
+private class ReduceAction58
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
@@ -14205,36 +2724,41 @@ private class ReduceAction307
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pexprnode8 = nodearraylist9
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pannotationsnode9 = nodearraylist10
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               null,
-                                               pexterncodeblocknode10
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
+                                               pexprnode8,
+                                               pannotationsnode9,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction308
+private class ReduceAction59
        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
@@ -14248,34 +2772,37 @@ private class ReduceAction308
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       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 pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
                                                null,
-                                               pexterncodeblocknode10
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction309
+private class ReduceAction60
        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
@@ -14284,36 +2811,42 @@ private class ReduceAction309
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist5
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               null,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction310
+private class ReduceAction61
        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
@@ -14327,34 +2860,37 @@ private class ReduceAction310
                                        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 tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               pexterncodeblocknode10
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction311
+private class ReduceAction62
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -14364,34 +2900,36 @@ private class ReduceAction311
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwvarnode5 = nodearraylist4
+                                       assert tkwvarnode5 isa nullable TKwvar
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
+                                               tkwvarnode5,
+                                               tidnode6,
+                                               ptypenode7,
                                                null,
-                                               pexterncodeblocknode10
+                                               pannotationsnode9,
+                                               pexprnode10
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction312
+private class ReduceAction63
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -14410,36 +2948,38 @@ private class ReduceAction312
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       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 tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null,
-                                               pexterncodeblocknode10
+                                               tkwinitnode6,
+                                               null,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction313
+private class ReduceAction64
        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
@@ -14448,36 +2988,43 @@ private class ReduceAction313
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist5
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist6
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
+                                               tkwinitnode6,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction314
+private class ReduceAction65
        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
@@ -14491,34 +3038,40 @@ private class ReduceAction314
                                        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 pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
+                                               tkwinitnode6,
+                                               null,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction315
+private class ReduceAction66
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -14528,39 +3081,43 @@ private class ReduceAction315
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwinitnode6 = nodearraylist4
+                                       assert tkwinitnode6 isa nullable TKwinit
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwinitnode6,
+                                               null,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               null,
+                                               null,
+                                               pexprnode13
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction316
+private class ReduceAction67
        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
@@ -14574,32 +3131,28 @@ private class ReduceAction316
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       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 pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwtypenode5 = nodearraylist4
+                                       assert tkwtypenode5 isa nullable TKwtype
+                                       var tclassidnode6 = nodearraylist5
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               null,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               tkwtypenode5,
+                                               tclassidnode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction317
+private class ReduceAction68
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -14613,34 +3166,37 @@ private class ReduceAction317
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var psignaturenode7 = nodearraylist4
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist5
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist6
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist7
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexterncallsnode11 = nodearraylist6
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist7
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction318
+private class ReduceAction69
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -14659,32 +3215,35 @@ private class ReduceAction318
                                        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 tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pexterncallsnode11 = nodearraylist7
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist8
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               null,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction319
+private class ReduceAction70
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -14699,36 +3258,39 @@ private class ReduceAction319
                                        var nodearraylist1 = p.pop
                                        var pdocnode2 = nodearraylist1
                                        assert pdocnode2 isa nullable ADoc
-                                       var pvisibilitynode4 = nodearraylist2
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       var tkwnewnode5 = nodearraylist3
-                                       assert tkwnewnode5 isa nullable TKwnew
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var tstringnode8 = nodearraylist6
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist7
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist8
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var psignaturenode9 = nodearraylist5
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexterncallsnode11 = nodearraylist7
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist8
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               null,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction320
+private class ReduceAction71
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -14748,64 +3310,65 @@ private class ReduceAction320
                                        assert tkwredefnode3 isa nullable TKwredef
                                        var pvisibilitynode4 = nodearraylist3
                                        assert pvisibilitynode4 isa nullable AVisibility
-                                       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 tstringnode8 = nodearraylist7
-                                       assert tstringnode8 isa nullable TString
-                                       var pexterncallsnode9 = nodearraylist8
-                                       assert pexterncallsnode9 isa nullable AExternCalls
-                                       var pexterncodeblocknode10 = nodearraylist9
-                                       assert pexterncodeblocknode10 isa nullable AExternCodeBlock
-                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwnewnode7 = nodearraylist4
+                                       assert tkwnewnode7 isa nullable TKwnew
+                                       var pmethidnode8 = nodearraylist5
+                                       assert pmethidnode8 isa nullable AMethid
+                                       var psignaturenode9 = nodearraylist6
+                                       assert psignaturenode9 isa nullable ASignature
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pexterncallsnode11 = nodearraylist8
+                                       assert pexterncallsnode11 isa nullable AExternCalls
+                                       var pexterncodeblocknode12 = nodearraylist9
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9,
-                                               pexterncodeblocknode10
+                                               null,
+                                               null,
+                                               tkwnewnode7,
+                                               pmethidnode8,
+                                               psignaturenode9,
+                                               pannotationsnode10,
+                                               pexterncallsnode11,
+                                               pexterncodeblocknode12,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction321
+private class ReduceAction72
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pannotationsnode1 = nodearraylist2
-                                       node_list = pannotationsnode1
+                                       var ppropdefnode1 = nodearraylist1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction322
+private class ReduceAction74
        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 pannotationsnode1 = nodearraylist3
+                                       var pannotationsnode1 = nodearraylist2
                                        node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction324
+private class ReduceAction75
        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
@@ -14814,270 +3377,246 @@ private class ReduceAction324
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction325
+private class ReduceAction78
        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 tkwreadablenode3 = nodearraylist1
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
-                                               null,
-                                               tkwreadablenode3
-                                       )
-                                       node_list = pablenode1
+                                       var pannotationsnode1 = nodearraylist3
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction326
+private class ReduceAction79
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var tkwreadablenode3 = nodearraylist2
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
-                                               tkwredefnode2,
-                                               tkwreadablenode3
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pablenode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction327
+private class ReduceAction80
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode4 = nodearraylist1
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               null,
-                                               tkwwritablenode4
+                                       var tkwpublicnode2 = nodearraylist1
+                                       assert tkwpublicnode2 isa nullable TKwpublic
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode2
                                        )
-                                       node_list = pablenode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction328
+private class ReduceAction81
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode2,
-                                               null,
-                                               tkwwritablenode4
+                                       var tkwprivatenode2 = nodearraylist1
+                                       assert tkwprivatenode2 isa nullable TKwprivate
+                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode2
                                        )
-                                       node_list = pablenode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction329
+private class ReduceAction82
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pvisibilitynode3 = nodearraylist1
-                                       assert pvisibilitynode3 isa nullable AVisibility
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               null,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                       var tkwprotectednode2 = nodearraylist1
+                                       assert tkwprotectednode2 isa nullable TKwprotected
+                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode2
                                        )
-                                       node_list = pablenode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction330
+private class ReduceAction83
        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 tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var pvisibilitynode3 = nodearraylist2
-                                       assert pvisibilitynode3 isa nullable AVisibility
-                                       var tkwwritablenode4 = nodearraylist3
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode2,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                       var tkwintrudenode2 = nodearraylist1
+                                       assert tkwintrudenode2 isa nullable TKwintrude
+                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode2
                                        )
-                                       node_list = pablenode1
+                                       node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction331
+private class ReduceAction84
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility
-                                       node_list = pvisibilitynode1
+                                       var nodearraylist1 = p.pop
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
+                                               tplusnode2
+                                       )
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction332
+private class ReduceAction85
        super ReduceAction
        redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwprivatenode2 = nodearraylist1
-                                       assert tkwprivatenode2 isa nullable TKwprivate
-                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
-                                               tkwprivatenode2
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
+                                               tminusnode2
                                        )
-                                       node_list = pvisibilitynode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction333
+private class ReduceAction86
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwprotectednode2 = nodearraylist1
-                                       assert tkwprotectednode2 isa nullable TKwprotected
-                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
-                                               tkwprotectednode2
+                                       var tstarnode2 = nodearraylist1
+                                       assert tstarnode2 isa nullable TStar
+                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
+                                               tstarnode2
                                        )
-                                       node_list = pvisibilitynode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction334
+private class ReduceAction87
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwintrudenode2 = nodearraylist1
-                                       assert tkwintrudenode2 isa nullable TKwintrude
-                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
-                                               tkwintrudenode2
+                                       var tstarstarnode2 = nodearraylist1
+                                       assert tstarstarnode2 isa nullable TStarstar
+                                       var pmethidnode1: nullable AStarstarMethid = new AStarstarMethid.init_astarstarmethid(
+                                               tstarstarnode2
                                        )
-                                       node_list = pvisibilitynode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction335
+private class ReduceAction88
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode2
+                                       var tslashnode2 = nodearraylist1
+                                       assert tslashnode2 isa nullable TSlash
+                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
+                                               tslashnode2
                                        )
                                        node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction336
+private class ReduceAction89
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tplusnode2 = nodearraylist1
-                                       assert tplusnode2 isa nullable TPlus
-                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode2
+                                       var tpercentnode2 = nodearraylist1
+                                       assert tpercentnode2 isa nullable TPercent
+                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
+                                               tpercentnode2
                                        )
                                        node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction337
+private class ReduceAction90
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode2
+                                       var tpipenode2 = nodearraylist1
+                                       assert tpipenode2 isa nullable TPipe
+                                       var pmethidnode1: nullable APipeMethid = new APipeMethid.init_apipemethid(
+                                               tpipenode2
                                        )
                                        node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction338
+private class ReduceAction91
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tstarnode2 = nodearraylist1
-                                       assert tstarnode2 isa nullable TStar
-                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode2
+                                       var tcaretnode2 = nodearraylist1
+                                       assert tcaretnode2 isa nullable TCaret
+                                       var pmethidnode1: nullable ACaretMethid = new ACaretMethid.init_acaretmethid(
+                                               tcaretnode2
                                        )
                                        node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction339
+private class ReduceAction92
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tslashnode2 = nodearraylist1
-                                       assert tslashnode2 isa nullable TSlash
-                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode2
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pmethidnode1: nullable AAmpMethid = new AAmpMethid.init_aampmethid(
+                                               tampnode2
                                        )
                                        node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction340
+private class ReduceAction93
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tpercentnode2 = nodearraylist1
-                                       assert tpercentnode2 isa nullable TPercent
-                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode2
+                                       var ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pmethidnode1: nullable ATildeMethid = new ATildeMethid.init_atildemethid(
+                                               ttildenode2
                                        )
                                        node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction341
+private class ReduceAction94
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15092,7 +3631,7 @@ private class ReduceAction341
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction342
+private class ReduceAction95
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15107,7 +3646,7 @@ private class ReduceAction342
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction343
+private class ReduceAction96
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15122,7 +3661,7 @@ private class ReduceAction343
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction344
+private class ReduceAction97
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15137,7 +3676,7 @@ private class ReduceAction344
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction345
+private class ReduceAction98
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15152,7 +3691,7 @@ private class ReduceAction345
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction346
+private class ReduceAction99
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15167,7 +3706,7 @@ private class ReduceAction346
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction347
+private class ReduceAction100
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15182,7 +3721,7 @@ private class ReduceAction347
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction348
+private class ReduceAction101
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15197,7 +3736,7 @@ private class ReduceAction348
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction349
+private class ReduceAction102
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15216,7 +3755,7 @@ private class ReduceAction349
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction350
+private class ReduceAction103
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15231,7 +3770,7 @@ private class ReduceAction350
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction351
+private class ReduceAction104
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15250,7 +3789,7 @@ private class ReduceAction351
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction352
+private class ReduceAction105
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15273,36 +3812,22 @@ private class ReduceAction352
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction353
+private class ReduceAction106
        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 listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var ptypenode5 = nodearraylist4
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               ptypenode5,
-                                               listnode6
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
+                                               tidnode2
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction354
+private class ReduceAction107
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15314,7 +3839,6 @@ private class ReduceAction354
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode7 = new Array[Object]
                                        var toparnode2 = nodearraylist1
                                        assert toparnode2 isa nullable TOpar
                                        var listnode3 = nodearraylist3
@@ -15328,294 +3852,296 @@ private class ReduceAction354
                                                toparnode2,
                                                listnode4,
                                                tcparnode5,
-                                               ptypenode6,
-                                               listnode7
+                                               ptypenode6
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction355
+private class ReduceAction108
        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 listnode3 = new Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       var listnode4 = new Array[Object]
                                        var toparnode2 = nodearraylist1
                                        assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var ptypenode5 = nodearraylist4
-                                       assert ptypenode5 isa nullable AType
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
                                                toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               ptypenode5,
-                                               listnode7
+                                               listnode4,
+                                               tcparnode5,
+                                               null
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction356
+private class ReduceAction109
        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 listnode4 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var ptypenode6 = nodearraylist5
-                                       assert ptypenode6 isa nullable AType
-                                       var listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
+                                       var listnode3 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               ptypenode6,
-                                               listnode8
+                                               null,
+                                               listnode3,
+                                               null,
+                                               ptypenode5
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction357
+private class ReduceAction110
        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 listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
+                                               null,
                                                listnode3,
-                                               tcparnode4,
                                                null,
-                                               listnode6
+                                               null
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction358
+private class ReduceAction111
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pparamnode1 = nodearraylist1
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction112
        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 listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
+                                       var listnode3 = new Array[Object]
+                                       var pparamnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pparamnode1 != null then
+                                               listnode3.add(pparamnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction114
+       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 pparamnode1 = nodearraylist3
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction115
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
                                                null,
-                                               listnode7
+                                               null,
+                                               pannotationsnode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction359
+private class ReduceAction116
        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 listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var listnode6 = nodearraylist5
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
                                                null,
-                                               listnode7
+                                               null
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction360
+private class ReduceAction117
        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 listnode8 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
                                                null,
-                                               listnode8
+                                               pannotationsnode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction361
+private class ReduceAction118
        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 listnode6 = new Array[Object]
-                                       var ptypenode5 = nodearraylist1
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               ptypenode5,
-                                               listnode6
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist2
+                                       assert ptypenode3 isa nullable AType
+                                       var tdotdotdotnode4 = nodearraylist3
+                                       assert tdotdotdotnode4 isa nullable TDotdotdot
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4,
+                                               null
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction362
+private class ReduceAction119
        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 listnode7 = new Array[Object]
-                                       var ptypenode5 = nodearraylist1
-                                       assert ptypenode5 isa nullable AType
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               ptypenode5,
-                                               listnode7
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tdotdotdotnode4 = nodearraylist4
+                                       assert tdotdotdotnode4 isa nullable TDotdotdot
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
+                                               tidnode2,
+                                               ptypenode3,
+                                               tdotdotdotnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pparamnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction363
+private class ReduceAction120
        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 listnode6 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               null,
-                                               listnode6
+                                       var listnode4 = new Array[Object]
+                                       var tkwimportnode2 = nodearraylist1
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var pexterncallnode3 = nodearraylist3
+                                       assert pexterncallnode3 isa nullable AExternCall
+                                       if pexterncallnode3 != null then
+                                               listnode4.add(pexterncallnode3)
+                                       end
+                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
+                                               tkwimportnode2,
+                                               listnode4
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction364
+private class ReduceAction121
        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 listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist2
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               null,
-                                               listnode7
+                                       var listnode5 = new Array[Object]
+                                       var tkwimportnode2 = nodearraylist1
+                                       assert tkwimportnode2 isa nullable TKwimport
+                                       var pexterncallnode3 = nodearraylist3
+                                       assert pexterncallnode3 isa nullable AExternCall
+                                       var listnode4 = nodearraylist4
+                                       assert listnode4 isa Array[Object]
+                                       if pexterncallnode3 != null then
+                                               listnode5.add(pexterncallnode3)
+                                       end
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
+                                               tkwimportnode2,
+                                               listnode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction365
+private class ReduceAction123
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -15623,435 +4149,406 @@ private class ReduceAction365
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               null,
-                                               listnode6
-                                       )
-                                       node_list = psignaturenode1
+                                       var pexterncallnode1 = nodearraylist3
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction366
+private class ReduceAction124
        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 listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               null,
-                                               listnode7
-                                       )
-                                       node_list = psignaturenode1
+                                       var pexterncallnode1 = nodearraylist1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction367
+private class ReduceAction126
        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 listnode6 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var ptypenode5 = nodearraylist4
-                                       assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode3,
-                                               tcparnode4,
-                                               ptypenode5,
-                                               listnode6
+                                       var tkwsupernode2 = nodearraylist1
+                                       assert tkwsupernode2 isa nullable TKwsuper
+                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
+                                               tkwsupernode2
+                                       )
+                                       node_list = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction127
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pmethidnode2 = nodearraylist1
+                                       assert pmethidnode2 isa nullable AMethid
+                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
+                                               pmethidnode2
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction368
+private class ReduceAction128
        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 listnode7 = new Array[Object]
-                                       var toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tcparnode5 = nodearraylist4
-                                       assert tcparnode5 isa nullable TCpar
-                                       var ptypenode6 = nodearraylist5
-                                       assert ptypenode6 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               toparnode2,
-                                               listnode4,
-                                               tcparnode5,
-                                               ptypenode6,
-                                               listnode7
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var pmethidnode4 = nodearraylist3
+                                       assert pmethidnode4 isa nullable AMethid
+                                       var pexterncallnode1: nullable AFullPropExternCall = new AFullPropExternCall.init_afullpropexterncall(
+                                               ptypenode2,
+                                               tdotnode3,
+                                               pmethidnode4
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction369
+private class ReduceAction129
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               null,
-                                               listnode6
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
+                                               ptypenode2
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction370
+private class ReduceAction130
        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 listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var ptypenode5 = nodearraylist1
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var tkwasnode4 = nodearraylist3
+                                       assert tkwasnode4 isa nullable TKwas
+                                       var ptypenode5 = nodearraylist7
                                        assert ptypenode5 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               null,
-                                               listnode3,
-                                               null,
-                                               ptypenode5,
-                                               listnode6
+                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
+                                               ptypenode2,
+                                               tdotnode3,
+                                               tkwasnode4,
+                                               ptypenode5
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction371
+private class ReduceAction131
        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 listnode2 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       if pparamnode1 != null then
-                                               listnode2.add(pparamnode1)
-                                       end
-                                       node_list = listnode2
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var tkwasnode4 = nodearraylist3
+                                       assert tkwasnode4 isa nullable TKwas
+                                       var ptypenode5 = nodearraylist5
+                                       assert ptypenode5 isa nullable AType
+                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
+                                               ptypenode2,
+                                               tdotnode3,
+                                               tkwasnode4,
+                                               ptypenode5
+                                       )
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction372
+private class ReduceAction132
        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 listnode3 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pparamnode1 != null then
-                                               listnode3.add(pparamnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnullablenode4 = nodearraylist7
+                                       assert tkwnullablenode4 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               tkwnullablenode4
+                                       )
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction373
+private class ReduceAction133
        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 pparamnode1 = nodearraylist3
-                                       node_list = pparamnode1
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnullablenode4 = nodearraylist5
+                                       assert tkwnullablenode4 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               tkwnullablenode4
+                                       )
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction374
+private class ReduceAction134
        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
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null,
-                                               null
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode4 = nodearraylist7
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullablenode5 = nodearraylist9
+                                       assert tkwnullablenode5 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               tkwnotnode4,
+                                               tkwnullablenode5
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction375
+private class ReduceAction135
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null,
-                                               pannotationsnode5
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist3
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var tkwnotnode4 = nodearraylist5
+                                       assert tkwnotnode4 isa nullable TKwnot
+                                       var tkwnullablenode5 = nodearraylist7
+                                       assert tkwnullablenode5 isa nullable TKwnullable
+                                       var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               tkwnotnode4,
+                                               tkwnullablenode5
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction376
+private class ReduceAction137
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pparamnode1
+                                       var tstringnode1 = nodearraylist1
+                                       node_list = tstringnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction377
+private class ReduceAction138
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               null,
-                                               pannotationsnode5
+                                       var tkwinnode2 = nodearraylist1
+                                       assert tkwinnode2 isa nullable TKwin
+                                       var tstringnode3 = nodearraylist3
+                                       assert tstringnode3 isa nullable TString
+                                       var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
+                                               tkwinnode2,
+                                               tstringnode3
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pinlanguagenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction378
+private class ReduceAction139
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
-                                       assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist3
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               tdotdotdotnode4,
-                                               null
+                                       var texterncodesegmentnode3 = nodearraylist1
+                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
+                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
+                                               null,
+                                               texterncodesegmentnode3
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction379
+private class ReduceAction140
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist4
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
-                                               tdotdotdotnode4,
-                                               pannotationsnode5
+                                       var pinlanguagenode2 = nodearraylist1
+                                       assert pinlanguagenode2 isa nullable AInLanguage
+                                       var texterncodesegmentnode3 = nodearraylist2
+                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
+                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
+                                               pinlanguagenode2,
+                                               texterncodesegmentnode3
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction380
+private class ReduceAction141
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       listnode2 = concat(listnode2, listnode1)
-                                       node_list = listnode2
+                                       var pexterncodeblocknode1 = nodearraylist1
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction381
+private class ReduceAction143
        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 tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               null
-                                       )
-                                       node_list = pclosuredeclnode1
+                                       var pexterncodeblocknode1 = nodearraylist2
+                                       node_list = pexterncodeblocknode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction382
+private class ReduceAction144
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pannotationsnode5 = nodearraylist2
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               tclassidnode3,
+                                               listnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction383
+private class ReduceAction145
        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 tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
+                                       var listnode4 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pannotationsnode5 = nodearraylist3
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction384
+private class ReduceAction146
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16063,32 +4560,30 @@ private class ReduceAction384
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist4
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pannotationsnode6 = nodearraylist7
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               tclassidnode3,
+                                               listnode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction385
+private class ReduceAction147
        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
@@ -16096,76 +4591,61 @@ private class ReduceAction385
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tbangnode3 = nodearraylist1
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist2
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist3
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               null,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
+                                       var listnode5 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var tclassidnode3 = nodearraylist2
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var listnode4 = nodearraylist5
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
+                                       var pannotationsnode6 = nodearraylist8
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               tclassidnode3,
+                                               listnode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction386
+private class ReduceAction148
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var tbangnode3 = nodearraylist2
-                                       assert tbangnode3 isa nullable TBang
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var psignaturenode5 = nodearraylist4
-                                       assert psignaturenode5 isa nullable ASignature
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
-                                               pexprnode6
-                                       )
-                                       node_list = pclosuredeclnode1
+                                       var listnode2 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       if ptypenode1 != null then
+                                               listnode2.add(ptypenode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction387
+private class ReduceAction149
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        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
+                                       var listnode3 = new Array[Object]
+                                       var ptypenode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if ptypenode1 != null then
+                                               listnode3.add(ptypenode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction388
+private class ReduceAction150
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16173,378 +4653,357 @@ private class ReduceAction388
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwimportnode2 = nodearraylist1
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var pexterncallnode3 = nodearraylist3
-                                       assert pexterncallnode3 isa nullable AExternCall
-                                       if pexterncallnode3 != null then
-                                               listnode4.add(pexterncallnode3)
-                                       end
-                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
-                                               tkwimportnode2,
-                                               listnode4
-                                       )
-                                       node_list = pexterncallsnode1
+                                       var ptypenode1 = nodearraylist3
+                                       node_list = ptypenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction389
+private class ReduceAction154
        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 listnode5 = new Array[Object]
-                                       var tkwimportnode2 = nodearraylist1
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var pexterncallnode3 = nodearraylist3
-                                       assert pexterncallnode3 isa nullable AExternCall
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       if pexterncallnode3 != null then
-                                               listnode5.add(pexterncallnode3)
-                                       end
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexterncallsnode1: nullable AExternCalls = new AExternCalls.init_aexterncalls(
-                                               tkwimportnode2,
-                                               listnode5
-                                       )
-                                       node_list = pexterncallsnode1
+                                       var pexprnode1 = nodearraylist2
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction390
+private class ReduceAction155
        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 pexterncallnode1 = nodearraylist3
-                                       node_list = pexterncallnode1
+                                       var listnode2 = new Array[Object]
+                                       var tkwendnode3 = nodearraylist2
+                                       assert tkwendnode3 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2,
+                                               tkwendnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction391
+private class ReduceAction156
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pexterncallnode1 = nodearraylist1
-                                       node_list = pexterncallnode1
+                                       var listnode2 = new Array[Object]
+                                       var tkwendnode3 = nodearraylist1
+                                       assert tkwendnode3 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode2,
+                                               tkwendnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction393
+private class ReduceAction157
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwsupernode2 = nodearraylist1
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
-                                               tkwsupernode2
-                                       )
-                                       node_list = pexterncallnode1
+                                       var pexprnode1 = nodearraylist1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction394
+private class ReduceAction158
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pmethidnode2 = nodearraylist1
-                                       assert pmethidnode2 isa nullable AMethid
-                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
-                                               pmethidnode2
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction395
+private class ReduceAction159
        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 tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var tquadnode3 = nodearraylist2
-                                       assert tquadnode3 isa nullable TQuad
-                                       var pmethidnode4 = nodearraylist3
-                                       assert pmethidnode4 isa nullable AMethid
-                                       var pexterncallnode1: nullable AFullPropExternCall = new AFullPropExternCall.init_afullpropexterncall(
-                                               tclassidnode2,
-                                               tquadnode3,
-                                               pmethidnode4
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction396
+private class ReduceAction160
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
-                                               tclassidnode2
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction397
+private class ReduceAction161
        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 ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist6
-                                       assert ptypenode4 isa nullable AType
-                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               ptypenode4
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction398
+private class ReduceAction162
        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 ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnullablenode4 = nodearraylist4
-                                       assert tkwnullablenode4 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               tkwnullablenode4
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var tkwendnode4 = nodearraylist3
+                                       assert tkwendnode4 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode3,
+                                               tkwendnode4
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction399
+private class ReduceAction163
        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 ptypenode2 = nodearraylist1
-                                       assert ptypenode2 isa nullable AType
-                                       var tkwasnode3 = nodearraylist2
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist4
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullablenode5 = nodearraylist6
-                                       assert tkwnullablenode5 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNotNullableExternCall = new AAsNotNullableExternCall.init_aasnotnullableexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               tkwnotnode4,
-                                               tkwnullablenode5
+                                       var listnode4 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwendnode5 = nodearraylist4
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode4,
+                                               tkwendnode5
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction400
+private class ReduceAction167
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwinnode2 = nodearraylist1
-                                       assert tkwinnode2 isa nullable TKwin
-                                       var tstringnode3 = nodearraylist2
-                                       assert tstringnode3 isa nullable TString
-                                       var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
-                                               tkwinnode2,
-                                               tstringnode3
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
                                        )
-                                       node_list = pinlanguagenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction401
+private class ReduceAction168
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var texterncodesegmentnode3 = nodearraylist1
-                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
-                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
-                                               null,
-                                               texterncodesegmentnode3
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
                                        )
-                                       node_list = pexterncodeblocknode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction402
+private class ReduceAction169
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pinlanguagenode2 = nodearraylist1
-                                       assert pinlanguagenode2 isa nullable AInLanguage
-                                       var texterncodesegmentnode3 = nodearraylist2
-                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
-                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
-                                               pinlanguagenode2,
-                                               texterncodesegmentnode3
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null
                                        )
-                                       node_list = pexterncodeblocknode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction403
+private class ReduceAction170
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexterncodeblocknode1 = nodearraylist2
-                                       node_list = pexterncodeblocknode1
+                                       var tkwbreaknode2 = nodearraylist1
+                                       assert tkwbreaknode2 isa nullable TKwbreak
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               plabelnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction404
+private class ReduceAction171
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode4,
-                                               null
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa nullable TKwabort
+                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction405
+private class ReduceAction172
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4,
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
                                                null
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction406
+private class ReduceAction173
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pannotationsnode5 = nodearraylist2
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode4,
-                                               pannotationsnode5
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction407
+private class ReduceAction181
        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 tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pannotationsnode5 = nodearraylist3
-                                       assert pannotationsnode5 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode4,
-                                               pannotationsnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction408
+private class ReduceAction182
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16555,23 +5014,22 @@ private class ReduceAction408
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode5,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction409
+private class ReduceAction183
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16583,283 +5041,318 @@ private class ReduceAction409
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode5,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction410
+private class ReduceAction185
        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 listnode5 = new Array[Object]
-                                       var tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pannotationsnode6 = nodearraylist7
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
-                                               listnode5,
-                                               pannotationsnode6
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction411
+private class ReduceAction186
        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 listnode5 = new Array[Object]
-                                       var tkwnullablenode2 = nodearraylist1
-                                       assert tkwnullablenode2 isa nullable TKwnullable
-                                       var tclassidnode3 = nodearraylist2
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pannotationsnode6 = nodearraylist8
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var ptypenode1: nullable AType = new AType.init_atype(
-                                               tkwnullablenode2,
-                                               tclassidnode3,
-                                               listnode5,
-                                               pannotationsnode6
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction412
+private class ReduceAction187
        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 listnode2 = new Array[Object]
-                                       var ptypenode1 = nodearraylist1
-                                       if ptypenode1 != null then
-                                               listnode2.add(ptypenode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction413
+private class ReduceAction189
        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 ptypenode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if ptypenode1 != null then
-                                               listnode3.add(ptypenode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction414
+private class ReduceAction190
        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 ptypenode1 = nodearraylist3
-                                       node_list = ptypenode1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction416
+private class ReduceAction191
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode1 = nodearraylist2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction417
+private class ReduceAction192
        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 listnode2 = new Array[Object]
-                                       var tkwendnode3 = nodearraylist2
-                                       assert tkwendnode3 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2,
-                                               tkwendnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist5
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction418
+private class ReduceAction193
        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 listnode2 = new Array[Object]
-                                       var tkwendnode3 = nodearraylist1
-                                       assert tkwendnode3 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2,
-                                               tkwendnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist6
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction419
+private class ReduceAction195
        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 pexprnode1 = nodearraylist1
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction420
+private class ReduceAction196
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist3
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction421
+private class ReduceAction198
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               null
+                                       var tkwdebugnode2 = nodearraylist1
+                                       assert tkwdebugnode2 isa nullable TKwdebug
+                                       var tkwtypenode3 = nodearraylist2
+                                       assert tkwtypenode3 isa nullable TKwtype
+                                       var pexprnode4 = nodearraylist5
+                                       assert pexprnode4 isa nullable AExpr
+                                       var ptypenode5 = nodearraylist3
+                                       assert ptypenode5 isa nullable AType
+                                       var pexprnode1: nullable ADebugTypeExpr = new ADebugTypeExpr.init_adebugtypeexpr(
+                                               tkwdebugnode2,
+                                               tkwtypenode3,
+                                               pexprnode4,
+                                               ptypenode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction422
+private class ReduceAction199
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = plabelnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction423
+private class ReduceAction200
        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 listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               null
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               tidnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = plabelnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction424
+private class ReduceAction201
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16867,23 +5360,25 @@ private class ReduceAction424
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       var tkwendnode4 = nodearraylist3
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               tkwendnode4
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction425
+private class ReduceAction202
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -16892,391 +5387,575 @@ private class ReduceAction425
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       if pexprnode2 != null then
-                                               listnode4.add(pexprnode2)
-                                       end
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tkwendnode5 = nodearraylist4
-                                       assert tkwendnode5 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4,
-                                               tkwendnode5
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               null,
+                                               null,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction429
+private class ReduceAction203
        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 tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction430
+private class ReduceAction204
        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 tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               pexprnode3
+                                       var tkwvarnode2 = nodearraylist1
+                                       assert tkwvarnode2 isa nullable TKwvar
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist5
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               tkwvarnode2,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction431
+private class ReduceAction205
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist6
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction432
+private class ReduceAction206
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction433
+private class ReduceAction207
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               null,
-                                               pexprnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist6
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction434
+private class ReduceAction208
        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 tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               pexprnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist5
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction435
+private class ReduceAction209
        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 tkwabortnode2 = nodearraylist1
-                                       assert tkwabortnode2 isa nullable TKwabort
-                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
-                                               tkwabortnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist7
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist8
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction436
+private class ReduceAction210
        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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist6
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction437
+private class ReduceAction211
        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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist8
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist9
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction438
+private class ReduceAction212
        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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               null,
-                                               pexprnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist7
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction439
+private class ReduceAction215
        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 tkwcontinuenode2 = nodearraylist1
-                                       assert tkwcontinuenode2 isa nullable TKwcontinue
-                                       var plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               pexprnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction446
+private class ReduceAction216
        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 listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist2
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist3
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                pexprsnode4,
-                                               listnode5
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction447
+private class ReduceAction217
        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 listnode5 = new Array[Object]
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
+                                       var pexprsnode4 = nodearraylist3
                                        assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                pexprsnode4,
-                                               listnode5
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction448
+private class ReduceAction218
        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 listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var listnode5 = nodearraylist6
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist3
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                pexprsnode4,
-                                               listnode6
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction449
+private class ReduceAction219
        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 listnode6 = new Array[Object]
                                        var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
+                                       var tidnode3 = nodearraylist3
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
+                                       var pexprsnode4 = nodearraylist4
                                        assert pexprsnode4 isa nullable AExprs
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                       var tassignnode5 = nodearraylist5
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                tidnode3,
                                                pexprsnode4,
-                                               listnode6
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction450
+private class ReduceAction220
        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 tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               null,
-                                               tkwsupernode3,
-                                               pexprsnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var tassignnode6 = nodearraylist4
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist5
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               tassignnode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction451
+private class ReduceAction223
        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 pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               pexprsnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
+                                               pexprnode2,
+                                               pexprsnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction452
+private class ReduceAction224
        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
@@ -17284,155 +5963,220 @@ private class ReduceAction452
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist6
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction453
+private class ReduceAction225
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
                                                pexprnode2,
-                                               tkwinitnode3,
-                                               pexprsnode4
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction454
+private class ReduceAction226
        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 tkwdebugnode2 = nodearraylist1
-                                       assert tkwdebugnode2 isa nullable TKwdebug
-                                       var tkwtypenode3 = nodearraylist2
-                                       assert tkwtypenode3 isa nullable TKwtype
-                                       var pexprnode4 = nodearraylist5
-                                       assert pexprnode4 isa nullable AExpr
-                                       var ptypenode5 = nodearraylist3
-                                       assert ptypenode5 isa nullable AType
-                                       var pexprnode1: nullable ADebugTypeExpr = new ADebugTypeExpr.init_adebugtypeexpr(
-                                               tkwdebugnode2,
-                                               tkwtypenode3,
-                                               pexprnode4,
-                                               ptypenode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist6
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction455
+private class ReduceAction227
        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 tkwlabelnode2 = nodearraylist1
-                                       assert tkwlabelnode2 isa nullable TKwlabel
-                                       var tidnode3 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist4
                                        assert tidnode3 isa nullable TId
-                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
-                                               tkwlabelnode2,
-                                               tidnode3
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
                                        )
-                                       node_list = plabelnode1
+                                       var passignopnode6 = nodearraylist5
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction456
+private class ReduceAction228
        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 listnode2 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       if pclosuredefnode1 != null then
-                                               listnode2.add(pclosuredefnode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist6
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist7
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist8
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction457
+private class ReduceAction229
        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 listnode3 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pclosuredefnode1 != null then
-                                               listnode3.add(pclosuredefnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist6
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction458
+private class ReduceAction230
        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 listnode4 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist7
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist8
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist9
                                        assert pexprnode6 isa nullable AExpr
-                                       var plabelnode7 = nodearraylist5
-                                       assert plabelnode7 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               plabelnode7
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction459
+private class ReduceAction231
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17445,534 +6189,405 @@ private class ReduceAction459
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
                                        var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist7
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist7
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist8
                                        assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist8
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode8
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction460
+private class ReduceAction234
        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 listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist5
-                                       assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist6
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode8
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction461
+private class ReduceAction235
        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 tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist2
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist3
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction462
+private class ReduceAction236
        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 listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist4
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction463
+private class ReduceAction237
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
                                        var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist5
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist3
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist4
                                        assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction464
+private class ReduceAction238
        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 tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var pexprnode6 = nodearraylist5
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist5
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist6
                                        assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               null,
-                                               pexprnode6,
-                                               null
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction465
+private class ReduceAction239
        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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
                                        var listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode7 = nodearraylist8
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var passignopnode6 = nodearraylist4
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist5
                                        assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               null,
-                                               pexprnode7,
-                                               null
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4,
+                                               passignopnode6,
+                                               pexprnode7
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction466
+private class ReduceAction242
        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 listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               null,
-                                               pexprnode7,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var passignopnode4 = nodearraylist3
+                                       assert passignopnode4 isa nullable AAssignOp
+                                       var pexprnode5 = nodearraylist4
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
+                                               pexprnode2,
+                                               pexprsnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction467
+private class ReduceAction243
        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 tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
-                                               null
+                                       var tpluseqnode2 = nodearraylist1
+                                       assert tpluseqnode2 isa nullable TPluseq
+                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
+                                               tpluseqnode2
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction468
+private class ReduceAction244
        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 listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist8
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var tminuseqnode2 = nodearraylist1
+                                       assert tminuseqnode2 isa nullable TMinuseq
+                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
+                                               tminuseqnode2
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction469
+private class ReduceAction245
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstareqnode2 = nodearraylist1
+                                       assert tstareqnode2 isa nullable TStareq
+                                       var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
+                                               tstareqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction246
        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 listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist6
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var tslasheqnode2 = nodearraylist1
+                                       assert tslasheqnode2 isa nullable TSlasheq
+                                       var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
+                                               tslasheqnode2
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction470
+private class ReduceAction247
        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 tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var tkwdonode5 = nodearraylist3
-                                       assert tkwdonode5 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               null,
-                                               null
+                                       var tpercenteqnode2 = nodearraylist1
+                                       assert tpercenteqnode2 isa nullable TPercenteq
+                                       var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
+                                               tpercenteqnode2
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction471
+private class ReduceAction248
        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 listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist6
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               null,
-                                               null
+                                       var tstarstareqnode2 = nodearraylist1
+                                       assert tstarstareqnode2 isa nullable TStarstareq
+                                       var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
+                                               tstarstareqnode2
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction472
+private class ReduceAction249
        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 listnode5 = new Array[Object]
-                                       var tbangnode2 = nodearraylist1
-                                       assert tbangnode2 isa nullable TBang
-                                       var pclosureidnode3 = nodearraylist2
-                                       assert pclosureidnode3 isa nullable AClosureId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tkwdonode6 = nodearraylist4
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               null,
-                                               null
+                                       var tpipeeqnode2 = nodearraylist1
+                                       assert tpipeeqnode2 isa nullable TPipeeq
+                                       var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
+                                               tpipeeqnode2
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction473
+private class ReduceAction250
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pclosureidnode1: nullable ASimpleClosureId = new ASimpleClosureId.init_asimpleclosureid(
-                                               tidnode2
+                                       var tcareteqnode2 = nodearraylist1
+                                       assert tcareteqnode2 isa nullable TCareteq
+                                       var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
+                                               tcareteqnode2
                                        )
-                                       node_list = pclosureidnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction474
+private class ReduceAction251
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwbreaknode2 = nodearraylist1
-                                       assert tkwbreaknode2 isa nullable TKwbreak
-                                       var pclosureidnode1: nullable ABreakClosureId = new ABreakClosureId.init_abreakclosureid(
-                                               tkwbreaknode2
+                                       var tampeqnode2 = nodearraylist1
+                                       assert tampeqnode2 isa nullable TAmpeq
+                                       var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
+                                               tampeqnode2
                                        )
-                                       node_list = pclosureidnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction475
+private class ReduceAction252
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pexprnode4 = nodearraylist1
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               null,
-                                               null,
-                                               pexprnode4
+                                       var tlleqnode2 = nodearraylist1
+                                       assert tlleqnode2 isa nullable TLleq
+                                       var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
+                                               tlleqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction476
+private class ReduceAction253
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
-                                               null,
-                                               null
+                                       var tggeqnode2 = nodearraylist1
+                                       assert tggeqnode2 isa nullable TGgeq
+                                       var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
+                                               tggeqnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = passignopnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction477
+private class ReduceAction254
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -17980,143 +6595,131 @@ private class ReduceAction477
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               null,
-                                               null,
-                                               pannotationsnode7
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               plabelnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction478
+private class ReduceAction255
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               null,
-                                               null,
+                                       var tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction479
+private class ReduceAction256
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               null,
-                                               null,
-                                               pannotationsnode7
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction480
+private class ReduceAction257
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               tassignnode5,
-                                               pexprnode6,
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist6
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction481
+private class ReduceAction258
        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 tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               null,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               pannotationsnode7
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist8
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction482
+private class ReduceAction259
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18127,29 +6730,23 @@ private class ReduceAction482
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist4
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist6
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               null
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction483
+private class ReduceAction260
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18161,290 +6758,336 @@ private class ReduceAction483
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwvarnode2 = nodearraylist1
-                                       assert tkwvarnode2 isa nullable TKwvar
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var tassignnode5 = nodearraylist5
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pannotationsnode7 = nodearraylist3
-                                       assert pannotationsnode7 isa nullable AAnnotations
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
-                                               tassignnode5,
-                                               pexprnode6,
-                                               pannotationsnode7
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               null,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction484
+private class ReduceAction263
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist5
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode4 = nodearraylist3
+                                       assert plabelnode4 isa nullable ALabel
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               plabelnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction264
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwloopnode2 = nodearraylist1
+                                       assert tkwloopnode2 isa nullable TKwloop
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
+                                               tkwloopnode2,
+                                               pexprnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction485
+private class ReduceAction265
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction486
+private class ReduceAction266
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist6
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist7
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var tkwwhilenode2 = nodearraylist1
+                                       assert tkwwhilenode2 isa nullable TKwwhile
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
+                                               tkwwhilenode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction487
+private class ReduceAction267
        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
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               pexprsnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var listnode4 = new Array[Object]
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwdonode6 = nodearraylist9
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist10
+                                       assert pexprnode7 isa nullable AExpr
+                                       var plabelnode8 = nodearraylist11
+                                       assert plabelnode8 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               pexprnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               plabelnode8
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction488
+private class ReduceAction268
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist4
+                                       var listnode4 = new Array[Object]
+                                       var tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode5 = nodearraylist7
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
-                                               pexprnode2,
-                                               pexprsnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var tkwdonode6 = nodearraylist9
+                                       assert tkwdonode6 isa nullable TKwdo
+                                       var pexprnode7 = nodearraylist10
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               pexprnode5,
+                                               tkwdonode6,
+                                               pexprnode7,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction489
+private class ReduceAction269
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist5
-                                       assert passignopnode4 isa nullable AAssignOp
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
                                        var pexprnode5 = nodearraylist6
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var plabelnode6 = nodearraylist7
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+                                               tkwwithnode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               plabelnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction490
+private class ReduceAction270
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var passignopnode4 = nodearraylist2
-                                       assert passignopnode4 isa nullable AAssignOp
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var tkwwithnode2 = nodearraylist1
+                                       assert tkwwithnode2 isa nullable TKwwith
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwdonode4 = nodearraylist5
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+                                               tkwwithnode2,
+                                               pexprnode3,
+                                               tkwdonode4,
+                                               pexprnode5,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction491
+private class ReduceAction271
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
+                                       var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist5
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist6
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist7
+                                       var ptypenode4 = nodearraylist2
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist5
                                        assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
                                                tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction492
+private class ReduceAction272
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tidnode3 = nodearraylist1
                                        assert tidnode3 isa nullable TId
-                                       var pexprsnode4 = nodearraylist2
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var passignopnode5 = nodearraylist3
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist4
+                                       var ptypenode4 = nodearraylist3
+                                       assert ptypenode4 isa nullable AType
+                                       var tassignnode5 = nodearraylist4
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist6
                                        assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
+                                       var pannotationsnode7 = nodearraylist2
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
                                                tidnode3,
-                                               pexprsnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction493
+private class ReduceAction274
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18453,55 +7096,72 @@ private class ReduceAction493
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var passignopnode4 = nodearraylist3
-                                       assert passignopnode4 isa nullable AAssignOp
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
                                        var pexprnode5 = nodearraylist4
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
-                                               pexprnode2,
-                                               pexprsnode3,
-                                               passignopnode4,
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction494
+private class ReduceAction275
        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 tpluseqnode2 = nodearraylist1
-                                       assert tpluseqnode2 isa nullable TPluseq
-                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
-                                               tpluseqnode2
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               pexprnode5
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction495
+private class ReduceAction276
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tminuseqnode2 = nodearraylist1
-                                       assert tminuseqnode2 isa nullable TMinuseq
-                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
-                                               tminuseqnode2
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
+                                               null
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction496
+private class ReduceAction277
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18509,46 +7169,42 @@ private class ReduceAction496
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var plabelnode4 = nodearraylist3
-                                       assert plabelnode4 isa nullable ALabel
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               plabelnode4
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction497
+private class ReduceAction278
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwdonode2 = nodearraylist1
-                                       assert tkwdonode2 isa nullable TKwdo
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
-                                               tkwdonode2,
-                                               pexprnode3,
-                                               null
-                                       )
-                                       node_list = pexprnode1
+                                       var tidnode1 = nodearraylist1
+                                       node_list = tidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction498
+private class ReduceAction280
        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
@@ -18561,406 +7217,291 @@ private class ReduceAction498
                                        assert tkwifnode2 isa nullable TKwif
                                        var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist8
+                                       var tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                       var tkwelsenode6 = nodearraylist9
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist11
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
                                                tkwifnode2,
                                                pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction499
+private class ReduceAction282
        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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               null
+                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+                                               pexprnode2,
+                                               tkwornode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction500
+private class ReduceAction283
        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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwandnode3 = nodearraylist2
+                                       assert tkwandnode3 isa nullable TKwand
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction501
-       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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
-                                               pexprnode5
+                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                               pexprnode2,
+                                               tkwandnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction502
+private class ReduceAction284
        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 tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var tkwelsenode4 = nodearraylist3
+                                       assert tkwelsenode4 isa nullable TKwelse
+                                       var pexprnode5 = nodearraylist5
                                        assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               null,
+                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                               pexprnode2,
+                                               tkwornode3,
+                                               tkwelsenode4,
                                                pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction505
+private class ReduceAction285
        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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var plabelnode4 = nodearraylist3
-                                       assert plabelnode4 isa nullable ALabel
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               plabelnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwimpliesnode3 = nodearraylist2
+                                       assert tkwimpliesnode3 isa nullable TKwimplies
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
+                                               pexprnode2,
+                                               tkwimpliesnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction506
+private class ReduceAction287
        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 tkwloopnode2 = nodearraylist1
-                                       assert tkwloopnode2 isa nullable TKwloop
-                                       var pexprnode3 = nodearraylist2
+                                       var tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
+                                       var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALoopExpr = new ALoopExpr.init_aloopexpr(
-                                               tkwloopnode2,
-                                               pexprnode3,
-                                               null
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction507
+private class ReduceAction289
        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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var plabelnode6 = nodearraylist7
-                                       assert plabelnode6 isa nullable ALabel
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               plabelnode6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var teqnode3 = nodearraylist2
+                                       assert teqnode3 isa nullable TEq
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                               pexprnode2,
+                                               teqnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction508
+private class ReduceAction290
        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 tkwwhilenode2 = nodearraylist1
-                                       assert tkwwhilenode2 isa nullable TKwwhile
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwdonode4 = nodearraylist5
-                                       assert tkwdonode4 isa nullable TKwdo
-                                       var pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AWhileExpr = new AWhileExpr.init_awhileexpr(
-                                               tkwwhilenode2,
-                                               pexprnode3,
-                                               tkwdonode4,
-                                               pexprnode5,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tnenode3 = nodearraylist2
+                                       assert tnenode3 isa nullable TNe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+                                               pexprnode2,
+                                               tnenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction509
+private class ReduceAction291
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist13 = p.pop
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist4
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist9
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist11
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist12
-                                       assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist13
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode8
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tltnode3 = nodearraylist2
+                                       assert tltnode3 isa nullable TLt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+                                               pexprnode2,
+                                               tltnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction510
+private class ReduceAction292
        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
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist9
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist10
-                                       assert pexprnode7 isa nullable AExpr
-                                       var plabelnode8 = nodearraylist11
-                                       assert plabelnode8 isa nullable ALabel
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               plabelnode8
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tlenode3 = nodearraylist2
+                                       assert tlenode3 isa nullable TLe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+                                               pexprnode2,
+                                               tlenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction511
+private class ReduceAction293
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist4
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist9
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist11
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist12
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tgtnode3 = nodearraylist2
+                                       assert tgtnode3 isa nullable TGt
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                               pexprnode2,
+                                               tgtnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction512
+private class ReduceAction294
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var tkwfornode2 = nodearraylist1
-                                       assert tkwfornode2 isa nullable TKwfor
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwdonode6 = nodearraylist9
-                                       assert tkwdonode6 isa nullable TKwdo
-                                       var pexprnode7 = nodearraylist10
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
-                                               tkwfornode2,
-                                               listnode4,
-                                               pexprnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tgenode3 = nodearraylist2
+                                       assert tgenode3 isa nullable TGe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+                                               pexprnode2,
+                                               tgenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction513
+private class ReduceAction295
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -18969,173 +7510,166 @@ private class ReduceAction513
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tstarshipnode3 = nodearraylist2
+                                       assert tstarshipnode3 isa nullable TStarship
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist4
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+                                               pexprnode2,
+                                               tstarshipnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction514
+private class ReduceAction296
        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 tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist5
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwisanode3 = nodearraylist2
+                                       assert tkwisanode3 isa nullable TKwisa
+                                       var ptypenode4 = nodearraylist4
+                                       assert ptypenode4 isa nullable AType
+                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                               pexprnode2,
+                                               tkwisanode3,
+                                               ptypenode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction515
+private class ReduceAction298
        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 tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tpipenode3 = nodearraylist2
+                                       assert tpipenode3 isa nullable TPipe
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               null,
-                                               pexprnode4,
-                                               null
+                                       var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
+                                               pexprnode2,
+                                               tpipenode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction516
+private class ReduceAction300
        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 tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var pexprnode4 = nodearraylist3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tcaretnode3 = nodearraylist2
+                                       assert tcaretnode3 isa nullable TCaret
+                                       var pexprnode4 = nodearraylist4
                                        assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
-                                               tidnode3,
-                                               pexprnode4,
-                                               null
+                                       var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
+                                               pexprnode2,
+                                               tcaretnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction517
+private class ReduceAction302
        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 tidnode1 = nodearraylist1
-                                       node_list = tidnode1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tampnode3 = nodearraylist2
+                                       assert tampnode3 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
+                                               pexprnode2,
+                                               tampnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction521
+private class ReduceAction304
        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 listnode5 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
+                                       var tllnode3 = nodearraylist2
+                                       assert tllnode3 isa nullable TLl
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
                                                pexprnode2,
-                                               pexprsnode3,
-                                               listnode5
+                                               tllnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction523
+private class ReduceAction305
        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
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tkwthennode4 = nodearraylist5
-                                       assert tkwthennode4 isa nullable TKwthen
-                                       var pexprnode5 = nodearraylist7
-                                       assert pexprnode5 isa nullable AExpr
-                                       var tkwelsenode6 = nodearraylist9
-                                       assert tkwelsenode6 isa nullable TKwelse
-                                       var pexprnode7 = nodearraylist11
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable AIfexprExpr = new AIfexprExpr.init_aifexprexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               tkwthennode4,
-                                               pexprnode5,
-                                               tkwelsenode6,
-                                               pexprnode7
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tggnode3 = nodearraylist2
+                                       assert tggnode3 isa nullable TGg
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
+                                               pexprnode2,
+                                               tggnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction525
+private class ReduceAction307
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19146,17 +7680,20 @@ private class ReduceAction525
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
+                                       var tplusnode3 = nodearraylist2
+                                       assert tplusnode3 isa nullable TPlus
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tplusnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction526
+private class ReduceAction308
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19167,59 +7704,68 @@ private class ReduceAction526
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
+                                       var tminusnode3 = nodearraylist2
+                                       assert tminusnode3 isa nullable TMinus
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tminusnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction527
+private class ReduceAction310
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist5
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                       var tstarnode3 = nodearraylist2
+                                       assert tstarnode3 isa nullable TStar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tstarnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction529
+private class ReduceAction311
        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 tkwnotnode2 = nodearraylist1
-                                       assert tkwnotnode2 isa nullable TKwnot
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
-                                               tkwnotnode2,
-                                               pexprnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tslashnode3 = nodearraylist2
+                                       assert tslashnode3 isa nullable TSlash
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+                                               pexprnode2,
+                                               tslashnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction531
+private class ReduceAction312
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19230,17 +7776,20 @@ private class ReduceAction531
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
+                                       var tpercentnode3 = nodearraylist2
+                                       assert tpercentnode3 isa nullable TPercent
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tpercentnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction532
+private class ReduceAction314
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19251,101 +7800,97 @@ private class ReduceAction532
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AEeExpr = new AEeExpr.init_aeeexpr(
+                                       var tstarstarnode3 = nodearraylist2
+                                       assert tstarstarnode3 isa nullable TStarstar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tstarstarnode3,
+                                               pexprnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction533
+private class ReduceAction316
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+                                               tminusnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction534
+private class ReduceAction317
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
+                                               tplusnode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction535
+private class ReduceAction318
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
+                                               ttildenode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction536
+private class ReduceAction319
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
-                                               pexprnode2,
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
                                                pexprnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction537
+private class ReduceAction321
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19354,124 +7899,137 @@ private class ReduceAction537
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var pexprsnode5 = nodearraylist4
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction538
+private class ReduceAction322
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               null,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction539
+private class ReduceAction323
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tattridnode4 = nodearraylist6
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction540
+private class ReduceAction324
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode4 = nodearraylist3
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction541
+private class ReduceAction326
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+                                       var tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
                                                pexprnode2,
-                                               ptypenode3
+                                               tattridnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction543
+private class ReduceAction327
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tattridnode3 = nodearraylist2
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tattridnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction544
+private class ReduceAction329
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19482,100 +8040,122 @@ private class ReduceAction544
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                       var tidnode3 = nodearraylist4
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction546
+private class ReduceAction331
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                       var tidnode3 = nodearraylist5
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction547
+private class ReduceAction333
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+                                       var tidnode3 = nodearraylist6
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction548
+private class ReduceAction337
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction550
+private class ReduceAction339
        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 tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
-                                               tminusnode2,
-                                               pexprnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction551
+private class ReduceAction341
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19583,153 +8163,180 @@ private class ReduceAction551
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction553
+private class ReduceAction345
        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 tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var pexprsnode5 = nodearraylist4
-                                       assert pexprsnode5 isa nullable AExprs
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               pexprsnode5
+                                       var pqualifiednode2 = nodearraylist1
+                                       assert pqualifiednode2 isa nullable AQualified
+                                       var tkwsupernode3 = nodearraylist2
+                                       assert tkwsupernode3 isa nullable TKwsuper
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                               pqualifiednode2,
+                                               tkwsupernode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction554
+private class ReduceAction347
        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 tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist5
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction555
+private class ReduceAction349
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode4 = nodearraylist2
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction556
+private class ReduceAction350
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               pexprsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction557
+private class ReduceAction351
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa nullable TId
+                                       var pexprsnode5 = nodearraylist7
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction564
+private class ReduceAction352
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprsnode3 = nodearraylist2
-                                       assert pexprsnode3 isa nullable AExprs
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
-                                               pexprsnode3,
-                                               listnode4
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist6
+                                       assert tidnode4 isa nullable TId
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction565
+private class ReduceAction353
        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
@@ -19741,9 +8348,9 @@ private class ReduceAction565
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
                                        assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist6
+                                       var tidnode4 = nodearraylist7
                                        assert tidnode4 isa nullable TId
-                                       var pexprsnode5 = nodearraylist7
+                                       var pexprsnode5 = nodearraylist8
                                        assert pexprsnode5 isa nullable AExprs
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
@@ -19755,13 +8362,11 @@ private class ReduceAction565
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction566
+private class ReduceAction354
        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
@@ -19769,31 +8374,31 @@ private class ReduceAction566
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tcbranode5 = nodearraylist9
-                                       assert tcbranode5 isa nullable TCbra
-                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tcbranode5,
-                                               null
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist7
+                                       assert tidnode4 isa nullable TId
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction567
+private class ReduceAction355
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
                                        var nodearraylist9 = p.pop
                                        var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
@@ -19803,33 +8408,29 @@ private class ReduceAction567
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tcbranode5 = nodearraylist9
-                                       assert tcbranode5 isa nullable TCbra
-                                       var pannotationsnode6 = nodearraylist10
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tcbranode5,
-                                               pannotationsnode6
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist8
+                                       assert tidnode4 isa nullable TId
+                                       var pexprsnode5 = nodearraylist9
+                                       assert pexprsnode5 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction568
+private class ReduceAction356
        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
@@ -19838,26 +8439,27 @@ private class ReduceAction568
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tobranode5 = nodearraylist9
-                                       assert tobranode5 isa nullable TObra
-                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tobranode5,
-                                               null
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode4 = nodearraylist8
+                                       assert tidnode4 isa nullable TId
+                                       var listnode6 = new Array[Object]
+                                       var pexprsnode5: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode6
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               tidnode4,
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction569
+private class ReduceAction359
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19872,79 +8474,121 @@ private class ReduceAction569
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist7
-                                       assert pexprnode4 isa nullable AExpr
-                                       var tobranode5 = nodearraylist9
-                                       assert tobranode5 isa nullable TObra
-                                       var pannotationsnode6 = nodearraylist10
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
-                                               tobranode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               tobranode5,
-                                               pannotationsnode6
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var toparnode4 = nodearraylist6
+                                       assert toparnode4 isa nullable TOpar
+                                       var ptypenode5 = nodearraylist8
+                                       assert ptypenode5 isa nullable AType
+                                       var tcparnode6 = nodearraylist10
+                                       assert tcparnode6 isa nullable TCpar
+                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               toparnode4,
+                                               ptypenode5,
+                                               tcparnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction570
+private class ReduceAction360
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprsnode2 = nodearraylist1
-                                       assert pexprsnode2 isa nullable AExprs
-                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               pexprsnode2,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwasnode3 = nodearraylist4
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var toparnode4 = nodearraylist6
+                                       assert toparnode4 isa nullable TOpar
+                                       var tkwnotnode5 = nodearraylist8
+                                       assert tkwnotnode5 isa nullable TKwnot
+                                       var tkwnullnode6 = nodearraylist10
+                                       assert tkwnullnode6 isa nullable TKwnull
+                                       var tcparnode7 = nodearraylist12
+                                       assert tcparnode7 isa nullable TCpar
+                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
+                                               pexprnode2,
+                                               tkwasnode3,
+                                               toparnode4,
+                                               tkwnotnode5,
+                                               tkwnullnode6,
+                                               tcparnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction571
+private class ReduceAction361
        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 pexprsnode2 = nodearraylist1
-                                       assert pexprsnode2 isa nullable AExprs
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               pexprsnode2,
-                                               pannotationsnode3
+                                       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 ReduceAction572
+private class ReduceAction362
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2,
-                                               null
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tdotdotdotnode3 = nodearraylist2
+                                       assert tdotdotdotnode3 isa nullable TDotdotdot
+                                       var pexprnode1: nullable AVarargExpr = new AVarargExpr.init_avarargexpr(
+                                               pexprnode2,
+                                               tdotdotdotnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction573
+private class ReduceAction363
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19963,23 +8607,7 @@ private class ReduceAction573
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction574
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwtruenode2 = nodearraylist1
-                                       assert tkwtruenode2 isa nullable TKwtrue
-                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
-                                               tkwtruenode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction575
+private class ReduceAction364
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -19998,23 +8626,7 @@ private class ReduceAction575
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction576
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction577
+private class ReduceAction365
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20033,23 +8645,7 @@ private class ReduceAction577
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction578
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tkwnullnode2 = nodearraylist1
-                                       assert tkwnullnode2 isa nullable TKwnull
-                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
-                                               tkwnullnode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction579
+private class ReduceAction366
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20068,23 +8664,7 @@ private class ReduceAction579
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction580
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2,
-                                               null
-                                       )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction581
+private class ReduceAction367
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20095,7 +8675,7 @@ private class ReduceAction581
                                        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
                                        )
@@ -20103,23 +8683,26 @@ private class ReduceAction581
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction582
+private class ReduceAction368
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2,
-                                               null
+                                       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 ReduceAction583
+private class ReduceAction369
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20138,116 +8721,168 @@ private class ReduceAction583
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction584
+private class ReduceAction370
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var tcharnode2 = nodearraylist1
                                        assert tcharnode2 isa nullable TChar
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
                                        var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
                                                tcharnode2,
-                                               null
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction585
+private class ReduceAction371
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tcharnode2 = nodearraylist1
-                                       assert tcharnode2 isa nullable TChar
+                                       var tstringnode2 = nodearraylist1
+                                       assert tstringnode2 isa nullable TString
                                        var pannotationsnode3 = nodearraylist2
                                        assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2,
+                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
+                                               tstringnode2,
                                                pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction586
+private class ReduceAction374
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2,
-                                               null
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tcbranode5 = nodearraylist9
+                                       assert tcbranode5 isa nullable TCbra
+                                       var pannotationsnode6 = nodearraylist10
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
+                                               tobranode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               tcbranode5,
+                                               pannotationsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction587
+private class ReduceAction375
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pannotationsnode3 = nodearraylist2
-                                       assert pannotationsnode3 isa nullable AAnnotations
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2,
-                                               pannotationsnode3
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tobranode5 = nodearraylist9
+                                       assert tobranode5 isa nullable TObra
+                                       var pannotationsnode6 = nodearraylist10
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
+                                               tobranode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               tobranode5,
+                                               pannotationsnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction589
+private class ReduceAction376
        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 toparnode2 = nodearraylist1
-                                       assert toparnode2 isa nullable TOpar
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tcparnode4 = nodearraylist3
-                                       assert tcparnode4 isa nullable TCpar
-                                       var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
-                                               toparnode2,
-                                               pexprnode3,
-                                               tcparnode4,
-                                               null
+                                       var listnode4 = new Array[Object]
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var ptypenode5 = nodearraylist4
+                                       assert ptypenode5 isa nullable AType
+                                       var tcbranode6 = nodearraylist5
+                                       assert tcbranode6 isa nullable TCbra
+                                       var pannotationsnode7 = nodearraylist6
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
+                                               tobranode2,
+                                               listnode4,
+                                               ptypenode5,
+                                               tcbranode6,
+                                               pannotationsnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction590
+private class ReduceAction377
        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 toparnode2 = nodearraylist1
                                        assert toparnode2 isa nullable TOpar
-                                       var pexprnode3 = nodearraylist2
+                                       var pexprnode3 = nodearraylist3
                                        assert pexprnode3 isa nullable AExpr
-                                       var tcparnode4 = nodearraylist3
+                                       var tcparnode4 = nodearraylist5
                                        assert tcparnode4 isa nullable TCpar
-                                       var pannotationsnode5 = nodearraylist4
+                                       var pannotationsnode5 = nodearraylist6
                                        assert pannotationsnode5 isa nullable AAnnotations
                                        var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
                                                toparnode2,
@@ -20259,136 +8894,117 @@ private class ReduceAction590
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction591
+private class ReduceAction379
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode4 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var toparnode4 = nodearraylist6
-                                       assert toparnode4 isa nullable TOpar
-                                       var ptypenode5 = nodearraylist8
-                                       assert ptypenode5 isa nullable AType
-                                       var tcparnode6 = nodearraylist10
-                                       assert tcparnode6 isa nullable TCpar
-                                       var pexprnode1: nullable AAsCastExpr = new AAsCastExpr.init_aascastexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               toparnode4,
-                                               ptypenode5,
-                                               tcparnode6
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       if pexprnode2 != null then
+                                               listnode4.add(pexprnode2)
+                                       end
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprnode1: nullable AManyExpr = new AManyExpr.init_amanyexpr(
+                                               listnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction592
+private class ReduceAction380
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist12 = p.pop
-                                       var nodearraylist11 = p.pop
-                                       var nodearraylist10 = p.pop
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
-                                       var nodearraylist6 = p.pop
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tkwasnode3 = nodearraylist4
-                                       assert tkwasnode3 isa nullable TKwas
-                                       var toparnode4 = nodearraylist6
-                                       assert toparnode4 isa nullable TOpar
-                                       var tkwnotnode5 = nodearraylist8
-                                       assert tkwnotnode5 isa nullable TKwnot
-                                       var tkwnullnode6 = nodearraylist10
-                                       assert tkwnullnode6 isa nullable TKwnull
-                                       var tcparnode7 = nodearraylist12
-                                       assert tcparnode7 isa nullable TCpar
-                                       var pexprnode1: nullable AAsNotnullExpr = new AAsNotnullExpr.init_aasnotnullexpr(
-                                               pexprnode2,
-                                               tkwasnode3,
-                                               toparnode4,
-                                               tkwnotnode5,
-                                               tkwnullnode6,
-                                               tcparnode7
-                                       )
+                                       var pexprnode1 = nodearraylist3
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction593
+private class ReduceAction381
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction382
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode2 = nodearraylist1
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       listnode4 = concat(listnode4, listnode2)
-                                       if pexprnode3 != null then
-                                               listnode4.add(pexprnode3)
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
                                        end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode4,
-                                               null
-                                       )
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction384
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction594
+private class ReduceAction386
        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 listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       var pexprnode4 = nodearraylist3
+                                       var tkwifnode2 = nodearraylist1
+                                       assert tkwifnode2 isa nullable TKwif
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode4 = nodearraylist7
                                        assert pexprnode4 isa nullable AExpr
-                                       listnode5 = concat(listnode5, listnode2)
-                                       listnode5 = concat(listnode5, listnode3)
-                                       if pexprnode4 != null then
-                                               listnode5.add(pexprnode4)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode5,
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               pexprnode4,
                                                null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction595
+private class ReduceAction387
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20415,7 +9031,7 @@ private class ReduceAction595
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction596
+private class ReduceAction388
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20446,7 +9062,7 @@ private class ReduceAction596
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction597
+private class ReduceAction389
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20468,7 +9084,23 @@ private class ReduceAction597
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction598
+private class ReduceAction390
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       if pexprnode1 != null then
+                                               listnode2.add(pexprnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction391
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20483,7 +9115,7 @@ private class ReduceAction598
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction600
+private class ReduceAction394
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20498,7 +9130,7 @@ private class ReduceAction600
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction601
+private class ReduceAction395
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20513,7 +9145,7 @@ private class ReduceAction601
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction602
+private class ReduceAction396
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20538,11 +9170,13 @@ private class ReduceAction602
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction603
+private class ReduceAction397
        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
@@ -20552,10 +9186,10 @@ private class ReduceAction603
                                        assert tatnode2 isa nullable TAt
                                        var toparnode3 = nodearraylist2
                                        assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist3
+                                       var listnode4 = nodearraylist4
                                        assert listnode4 isa Array[Object]
                                        listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist4
+                                       var tcparnode6 = nodearraylist6
                                        assert tcparnode6 isa nullable TCpar
                                        var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
                                                tatnode2,
@@ -20567,50 +9201,18 @@ private class ReduceAction603
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction604
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               null,
-                                               listnode4,
-                                               null,
-                                               null
-                                       )
-                                       node_list = pannotationnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction605
+private class ReduceAction398
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationsnode6 = nodearraylist2
-                                       assert pannotationsnode6 isa nullable AAnnotations
-                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               null,
-                                               listnode4,
-                                               null,
-                                               pannotationsnode6
-                                       )
-                                       node_list = pannotationnode1
+                                       var pannotationsnode1 = nodearraylist1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction606
+private class ReduceAction400
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20619,61 +9221,74 @@ private class ReduceAction606
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist2
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist4
-                                       assert tcparnode6 isa nullable TCpar
+                                       var listnode7 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist3
+                                       assert patidnode5 isa nullable AAtid
+                                       var pannotationsnode9 = nodearraylist4
+                                       assert pannotationsnode9 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               null
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
                                        )
                                        node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction607
+private class ReduceAction401
        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 listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist1
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist2
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist4
-                                       assert tcparnode6 isa nullable TCpar
-                                       var pannotationsnode7 = nodearraylist5
-                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist3
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist4
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist8
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationsnode10 = nodearraylist9
+                                       assert pannotationsnode10 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               pannotationsnode7
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               pannotationsnode10
                                        )
                                        node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction608
+private class ReduceAction402
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20693,7 +9308,7 @@ private class ReduceAction608
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction609
+private class ReduceAction403
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20708,7 +9323,7 @@ private class ReduceAction609
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction610
+private class ReduceAction404
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20727,21 +9342,34 @@ private class ReduceAction610
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction612
+private class ReduceAction407
        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 patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
+                                       var listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var patidnode5 = nodearraylist3
+                                       assert patidnode5 isa nullable AAtid
+                                       var pexprnode7 = nodearraylist4
+                                       assert pexprnode7 isa nullable AExpr
+                                       if pexprnode7 != null then
+                                               listnode8.add(pexprnode7)
+                                       end
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
                                                null,
-                                               listnode4,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode8,
                                                null,
                                                null
                                        )
@@ -20749,32 +9377,53 @@ private class ReduceAction612
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction613
+private class ReduceAction409
+       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 pannotationnode1 = nodearraylist3
+                                       node_list = pannotationnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction411
        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 patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var pannotationsnode6 = nodearraylist3
-                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var listnode7 = new Array[Object]
+                                       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 patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
                                                null,
-                                               listnode4,
+                                               listnode7,
                                                null,
-                                               pannotationsnode6
+                                               null
                                        )
                                        node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction614
+private class ReduceAction412
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20785,32 +9434,83 @@ private class ReduceAction614
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist3
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist5
-                                       assert tcparnode6 isa nullable TCpar
+                                       var listnode7 = new Array[Object]
+                                       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 patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var pannotationsnode9 = nodearraylist5
+                                       assert pannotationsnode9 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
+                                       )
+                                       node_list = pannotationnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction413
+       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 listnode8 = new Array[Object]
+                                       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 patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist5
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist8
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
                                                null
                                        )
                                        node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction615
+private class ReduceAction414
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -20818,48 +9518,68 @@ private class ReduceAction615
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var toparnode3 = nodearraylist3
-                                       assert toparnode3 isa nullable TOpar
-                                       var listnode4 = nodearraylist4
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tcparnode6 = nodearraylist5
-                                       assert tcparnode6 isa nullable TCpar
-                                       var pannotationsnode7 = nodearraylist6
-                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var listnode8 = new Array[Object]
+                                       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 patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist5
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist8
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationsnode10 = nodearraylist9
+                                       assert pannotationsnode10 isa nullable AAnnotations
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
-                                               toparnode3,
-                                               listnode5,
-                                               tcparnode6,
-                                               pannotationsnode7
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               pannotationsnode10
                                        )
                                        node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction616
+private class ReduceAction415
        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 listnode5 = new Array[Object]
-                                       var patidnode2 = nodearraylist2
-                                       assert patidnode2 isa nullable AAtid
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode8 = new Array[Object]
+                                       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 patidnode5 = nodearraylist4
+                                       assert patidnode5 isa nullable AAtid
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
                                        var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
-                                               patidnode2,
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode5,
                                                null,
-                                               listnode5,
+                                               listnode8,
                                                null,
                                                null
                                        )
@@ -20867,7 +9587,33 @@ private class ReduceAction616
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction617
+private class ReduceAction416
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode7 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction417
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20875,46 +9621,105 @@ private class ReduceAction617
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pannotationnode1 = nodearraylist3
-                                       node_list = pannotationnode1
+                                       var listnode7 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var pannotationsnode9 = nodearraylist3
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               null,
+                                               listnode7,
+                                               null,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction618
+private class ReduceAction418
        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 listnode2 = new Array[Object]
-                                       var patargnode1 = nodearraylist1
-                                       if patargnode1 != null then
-                                               listnode2.add(patargnode1)
-                                       end
-                                       node_list = listnode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist3
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist6
+                                       assert tcparnode9 isa nullable TCpar
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction619
+private class ReduceAction419
        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 listnode3 = new Array[Object]
-                                       var patargnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if patargnode1 != null then
-                                               listnode3.add(patargnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var toparnode6 = nodearraylist3
+                                       assert toparnode6 isa nullable TOpar
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tcparnode9 = nodearraylist6
+                                       assert tcparnode9 isa nullable TCpar
+                                       var pannotationsnode10 = nodearraylist7
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               toparnode6,
+                                               listnode8,
+                                               tcparnode9,
+                                               pannotationsnode10
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction620
+private class ReduceAction420
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20922,12 +9727,29 @@ private class ReduceAction620
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var patargnode1 = nodearraylist3
-                                       node_list = patargnode1
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var patidnode5 = nodearraylist2
+                                       assert patidnode5 isa nullable AAtid
+                                       var listnode7 = nodearraylist3
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var ppropdefnode1: nullable AAnnotPropdef = new AAnnotPropdef.init_aannotpropdef(
+                                               pdocnode2,
+                                               null,
+                                               null,
+                                               patidnode5,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction621
+private class ReduceAction424
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -20935,104 +9757,112 @@ private class ReduceAction621
                                        var nodearraylist1 = p.pop
                                        var ptypenode2 = nodearraylist1
                                        assert ptypenode2 isa nullable AType
-                                       var patargnode1: nullable ATypeAtArg = new ATypeAtArg.init_atypeatarg(
+                                       var pexprnode1: nullable ATypeExpr = new ATypeExpr.init_atypeexpr(
                                                ptypenode2
                                        )
-                                       node_list = patargnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction622
+private class ReduceAction427
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var patargnode1: nullable AExprAtArg = new AExprAtArg.init_aexpratarg(
-                                               pexprnode2
+                                       var pmethidnode3 = nodearraylist4
+                                       assert pmethidnode3 isa nullable AMethid
+                                       var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
+                                               pexprnode2,
+                                               pmethidnode3
                                        )
-                                       node_list = patargnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction624
+private class ReduceAction428
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pannotationsnode2 = nodearraylist1
-                                       assert pannotationsnode2 isa nullable AAnnotations
-                                       var patargnode1: nullable AAtAtArg = new AAtAtArg.init_aatatarg(
-                                               pannotationsnode2
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var pmethidnode3 = nodearraylist1
+                                       assert pmethidnode3 isa nullable AMethid
+                                       var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
+                                               pexprnode2,
+                                               pmethidnode3
                                        )
-                                       node_list = patargnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction625
+private class ReduceAction429
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
-                                               tidnode2
+                                       var pannotationsnode2 = nodearraylist1
+                                       assert pannotationsnode2 isa nullable AAnnotations
+                                       var pexprnode1: nullable AAtExpr = new AAtExpr.init_aatexpr(
+                                               pannotationsnode2
                                        )
-                                       node_list = patidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction626
+private class ReduceAction430
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwreadablenode2 = nodearraylist1
-                                       assert tkwreadablenode2 isa nullable TKwreadable
-                                       var patidnode1: nullable AKwreadableAtid = new AKwreadableAtid.init_akwreadableatid(
-                                               tkwreadablenode2
+                                       var tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
+                                               tidnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction627
+private class ReduceAction431
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwwritablenode2 = nodearraylist1
-                                       assert tkwwritablenode2 isa nullable TKwwritable
-                                       var patidnode1: nullable AKwwritableAtid = new AKwwritableAtid.init_akwwritableatid(
-                                               tkwwritablenode2
+                                       var tkwexternnode2 = nodearraylist1
+                                       assert tkwexternnode2 isa nullable TKwextern
+                                       var patidnode1: nullable AKwexternAtid = new AKwexternAtid.init_akwexternatid(
+                                               tkwexternnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction628
+private class ReduceAction432
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwimportnode2 = nodearraylist1
-                                       assert tkwimportnode2 isa nullable TKwimport
-                                       var patidnode1: nullable AKwimportAtid = new AKwimportAtid.init_akwimportatid(
-                                               tkwimportnode2
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var patidnode1: nullable AKwabstractAtid = new AKwabstractAtid.init_akwabstractatid(
+                                               tkwabstractnode2
                                        )
                                        node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction629
+private class ReduceAction433
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21058,7 +9888,7 @@ private class ReduceAction629
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction630
+private class ReduceAction434
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21080,39 +9910,39 @@ private class ReduceAction630
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction631
+private class ReduceAction436
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode2 = new Array[Object]
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
                                        var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode2
+                                               listnode3
                                        )
                                        node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction633
+private class ReduceAction438
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
+                                       var listnode2 = new Array[Object]
                                        var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
-                                               listnode3
+                                               listnode2
                                        )
                                        node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction636
+private class ReduceAction439
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21138,23 +9968,24 @@ private class ReduceAction636
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction637
+private class ReduceAction440
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode3
+                                       )
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction638
+private class ReduceAction442
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21174,7 +10005,7 @@ private class ReduceAction638
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction639
+private class ReduceAction443
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21188,7 +10019,39 @@ private class ReduceAction639
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction640
+private class ReduceAction444
+       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 listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist3
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction445
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       listnode2 = concat(listnode2, listnode1)
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction446
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21203,12 +10066,11 @@ private class ReduceAction640
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction641
+private class ReduceAction447
        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
@@ -21216,7 +10078,7 @@ private class ReduceAction641
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var tidnode2 = nodearraylist5
+                                       var tidnode2 = nodearraylist4
                                        listnode3 = concat(listnode3, listnode1)
                                        if tidnode2 != null then
                                                listnode3.add(tidnode2)
@@ -21225,7 +10087,7 @@ private class ReduceAction641
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction642
+private class ReduceAction448
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21243,7 +10105,7 @@ private class ReduceAction642
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction643
+private class ReduceAction449
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21265,7 +10127,7 @@ private class ReduceAction643
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction644
+private class ReduceAction450
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21287,7 +10149,7 @@ private class ReduceAction644
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction645
+private class ReduceAction451
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21313,7 +10175,7 @@ private class ReduceAction645
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction646
+private class ReduceAction452
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21330,46 +10192,118 @@ private class ReduceAction646
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction647
+private class ReduceAction453
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var tclassidnode4 = nodearraylist2
+                                       assert tclassidnode4 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction454
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               null
+                                       )
+                                       node_list = pqualifiednode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction456
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode1 = nodearraylist1
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction457
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode1 = nodearraylist2
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction458
+       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 tclassidnode1 = nodearraylist3
+                                       node_list = tclassidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction460
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pmethidnode1 = nodearraylist1
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction461
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var tclassidnode4 = nodearraylist2
-                                       assert tclassidnode4 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               tclassidnode4
-                                       )
-                                       node_list = pqualifiednode1
+                                       var pmethidnode1 = nodearraylist2
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction648
+private class ReduceAction462
        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 listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               null
-                                       )
-                                       node_list = pqualifiednode1
+                                       var pmethidnode1 = nodearraylist3
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction649
+private class ReduceAction464
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21382,7 +10316,7 @@ private class ReduceAction649
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction650
+private class ReduceAction465
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21395,7 +10329,18 @@ private class ReduceAction650
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction651
+private class ReduceAction467
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwendnode1 = nodearraylist1
+                                       node_list = tkwendnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction468
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21404,7 +10349,7 @@ private class ReduceAction651
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction653
+private class ReduceAction470
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21421,7 +10366,7 @@ private class ReduceAction653
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction654
+private class ReduceAction471
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21439,16 +10384,7 @@ private class ReduceAction654
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction656
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       node_list = null
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction657
+private class ReduceAction474
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21459,7 +10395,7 @@ private class ReduceAction657
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction658
+private class ReduceAction475
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21469,7 +10405,7 @@ private class ReduceAction658
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction659
+private class ReduceAction476
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21480,11 +10416,12 @@ private class ReduceAction659
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction931
+private class ReduceAction836
        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
@@ -21492,7 +10429,7 @@ private class ReduceAction931
                                        assert tkwissetnode2 isa nullable TKwisset
                                        var pexprnode3 = nodearraylist2
                                        assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist3
+                                       var tattridnode4 = nodearraylist4
                                        assert tattridnode4 isa nullable TAttrid
                                        var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
                                                tkwissetnode2,
@@ -21503,16 +10440,17 @@ private class ReduceAction931
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction932
+private class ReduceAction838
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist2
+                                       var tattridnode3 = nodearraylist3
                                        assert tattridnode3 isa nullable TAttrid
                                        var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
                                                pexprnode2,
@@ -21522,7 +10460,7 @@ private class ReduceAction932
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction933
+private class ReduceAction839
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21530,7 +10468,6 @@ private class ReduceAction933
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
                                        var tidnode3 = nodearraylist2
@@ -21540,143 +10477,171 @@ private class ReduceAction933
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               pexprsnode4,
-                                               listnode5
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction936
+private class ReduceAction840
        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 pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tkwinitnode3 = nodearraylist2
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var pexprsnode4 = nodearraylist3
-                                       assert pexprsnode4 isa nullable AExprs
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tkwinitnode3,
+                                               tidnode3,
                                                pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction957
+private class ReduceAction841
        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 pexprnode1 = nodearraylist1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var pexprsnode4 = nodearraylist4
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction958
+private class ReduceAction842
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode3 = nodearraylist3
+                                       assert tidnode3 isa nullable TId
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               tidnode3,
+                                               pexprsnode4
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1250
+private class ReduceAction849
        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 listnode2 = new Array[Object]
-                                       var pimportnode1 = nodearraylist1
-                                       if pimportnode1 != null then
-                                               listnode2.add(pimportnode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1251
+private class ReduceAction850
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var pimportnode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if pimportnode2 != null then
-                                               listnode3.add(pimportnode2)
-                                       end
-                                       node_list = listnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tkwinitnode3 = nodearraylist2
+                                       assert tkwinitnode3 isa nullable TKwinit
+                                       var listnode5 = new Array[Object]
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode5
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1252
+private class ReduceAction873
        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 listnode2 = new Array[Object]
-                                       var pexterncodeblocknode1 = nodearraylist1
-                                       if pexterncodeblocknode1 != null then
-                                               listnode2.add(pexterncodeblocknode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode1 = nodearraylist1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1253
+private class ReduceAction874
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var pexterncodeblocknode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if pexterncodeblocknode2 != null then
-                                               listnode3.add(pexterncodeblocknode2)
-                                       end
-                                       node_list = listnode3
+                                       var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1254
+private class ReduceAction1032
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var pclassdefnode1 = nodearraylist1
-                                       if pclassdefnode1 != null then
-                                               listnode2.add(pclassdefnode1)
+                                       var pimportnode1 = nodearraylist1
+                                       if pimportnode1 != null then
+                                               listnode2.add(pimportnode1)
                                        end
                                        node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1255
+private class ReduceAction1033
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21686,31 +10651,31 @@ private class ReduceAction1255
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pclassdefnode2 = nodearraylist2
+                                       var pimportnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if pclassdefnode2 != null then
-                                               listnode3.add(pclassdefnode2)
+                                       if pimportnode2 != null then
+                                               listnode3.add(pimportnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1256
+private class ReduceAction1034
        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 pexterncodeblocknode1 = nodearraylist1
+                                       if pexterncodeblocknode1 != null then
+                                               listnode2.add(pexterncodeblocknode1)
                                        end
                                        node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1257
+private class ReduceAction1035
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21720,31 +10685,31 @@ private class ReduceAction1257
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var ppropdefnode2 = nodearraylist2
+                                       var pexterncodeblocknode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
+                                       if pexterncodeblocknode2 != null then
+                                               listnode3.add(pexterncodeblocknode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1258
+private class ReduceAction1036
        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 pclassdefnode1 = nodearraylist1
+                                       if pclassdefnode1 != null then
+                                               listnode2.add(pclassdefnode1)
                                        end
                                        node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1259
+private class ReduceAction1037
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21754,16 +10719,16 @@ private class ReduceAction1259
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var psuperclassnode2 = nodearraylist2
+                                       var pclassdefnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if psuperclassnode2 != null then
-                                               listnode3.add(psuperclassnode2)
+                                       if pclassdefnode2 != null then
+                                               listnode3.add(pclassdefnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1262
+private class ReduceAction1038
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21778,7 +10743,7 @@ private class ReduceAction1262
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1263
+private class ReduceAction1039
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21797,22 +10762,7 @@ private class ReduceAction1263
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1264
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pparamnode1 = nodearraylist1
-                                       if pparamnode1 != null then
-                                               listnode2.add(pparamnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1265
+private class ReduceAction1041
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21822,31 +10772,31 @@ private class ReduceAction1265
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pparamnode2 = nodearraylist2
+                                       var ppropdefnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if pparamnode2 != null then
-                                               listnode3.add(pparamnode2)
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1266
+private class ReduceAction1042
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var pclosuredeclnode1 = nodearraylist1
-                                       if pclosuredeclnode1 != null then
-                                               listnode2.add(pclosuredeclnode1)
+                                       var pparamnode1 = nodearraylist1
+                                       if pparamnode1 != null then
+                                               listnode2.add(pparamnode1)
                                        end
                                        node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1267
+private class ReduceAction1043
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21856,16 +10806,16 @@ private class ReduceAction1267
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pclosuredeclnode2 = nodearraylist2
+                                       var pparamnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if pclosuredeclnode2 != null then
-                                               listnode3.add(pclosuredeclnode2)
+                                       if pparamnode2 != null then
+                                               listnode3.add(pparamnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1268
+private class ReduceAction1044
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21880,7 +10830,7 @@ private class ReduceAction1268
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1269
+private class ReduceAction1045
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21899,7 +10849,7 @@ private class ReduceAction1269
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1271
+private class ReduceAction1047
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21918,22 +10868,7 @@ private class ReduceAction1271
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1272
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pexprnode1 = nodearraylist1
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1273
+private class ReduceAction1049
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21952,7 +10887,7 @@ private class ReduceAction1273
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1275
+private class ReduceAction1055
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21970,7 +10905,7 @@ private class ReduceAction1275
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1277
+private class ReduceAction1057
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -21989,26 +10924,7 @@ private class ReduceAction1277
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1281
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var patargnode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if patargnode2 != null then
-                                               listnode3.add(patargnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction1285
+private class ReduceAction1065
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22027,7 +10943,7 @@ private class ReduceAction1285
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1286
+private class ReduceAction1066
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22042,7 +10958,7 @@ private class ReduceAction1286
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1287
+private class ReduceAction1067
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22061,7 +10977,7 @@ private class ReduceAction1287
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1288
+private class ReduceAction1068
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -22076,7 +10992,7 @@ private class ReduceAction1288
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction1289
+private class ReduceAction1069
        super ReduceAction
        redef fun action(p: Parser)
        do