parser: regenerate with lambda
[nit.git] / src / parser / parser.nit
index c30d894..b039c03 100644 (file)
 # Parser.
 # This file was generated by SableCC (http://www.sablecc.org/).
-package parser
+module parser is generated, no_warning("missing-doc", "unread-variable")
 
 intrude import parser_prod
+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 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 AError.init_error("Syntax error: unexpected {token}.", token.location)
-                               var node = new Start(null, node2)
-                               return node
-                       end
-               end
-       end
-
-       var _reduce_table: Array[ReduceAction]
-       private fun build_reduce_table
-       do
-               _reduce_table = new Array[ReduceAction].with_items(
-                       new ReduceAction0(0),
-                       new ReduceAction1(0),
-                       new ReduceAction2(0),
-                       new ReduceAction3(0),
-                       new ReduceAction4(0),
-                       new ReduceAction5(0),
-                       new ReduceAction6(0),
-                       new ReduceAction7(0),
-                       new ReduceAction8(0),
-                       new ReduceAction9(0),
-                       new ReduceAction10(0),
-                       new ReduceAction11(0),
-                       new ReduceAction12(0),
-                       new ReduceAction13(0),
-                       new ReduceAction14(0),
-                       new ReduceAction15(0),
-                       new ReduceAction16(0),
-                       new ReduceAction17(0),
-                       new ReduceAction18(0),
-                       new ReduceAction19(0),
-                       new ReduceAction20(0),
-                       new ReduceAction21(0),
-                       new ReduceAction22(0),
-                       new ReduceAction23(0),
-                       new ReduceAction24(0),
-                       new ReduceAction25(0),
-                       new ReduceAction26(0),
-                       new ReduceAction27(0),
-                       new ReduceAction28(0),
-                       new ReduceAction29(0),
-                       new ReduceAction30(0),
-                       new ReduceAction31(0),
-                       new ReduceAction32(1),
-                       new ReduceAction33(2),
-                       new ReduceAction34(2),
-                       new ReduceAction35(3),
-                       new ReduceAction36(3),
-                       new ReduceAction37(4),
-                       new ReduceAction37(4),
-                       new ReduceAction39(5),
-                       new ReduceAction40(5),
-                       new ReduceAction41(5),
-                       new ReduceAction42(5),
-                       new ReduceAction43(5),
-                       new ReduceAction44(5),
-                       new ReduceAction45(5),
-                       new ReduceAction46(5),
-                       new ReduceAction47(5),
-                       new ReduceAction48(5),
-                       new ReduceAction49(5),
-                       new ReduceAction50(5),
-                       new ReduceAction51(5),
-                       new ReduceAction52(5),
-                       new ReduceAction53(5),
-                       new ReduceAction54(5),
-                       new ReduceAction55(6),
-                       new ReduceAction56(6),
-                       new ReduceAction57(6),
-                       new ReduceAction58(6),
-                       new ReduceAction59(6),
-                       new ReduceAction60(7),
-                       new ReduceAction61(7),
-                       new ReduceAction62(8),
-                       new ReduceAction63(9),
-                       new ReduceAction64(9),
-                       new ReduceAction65(10),
-                       new ReduceAction66(10),
-                       new ReduceAction67(11),
-                       new ReduceAction68(12),
-                       new ReduceAction69(12),
-                       new ReduceAction70(12),
-                       new ReduceAction71(12),
-                       new ReduceAction72(12),
-                       new ReduceAction73(12),
-                       new ReduceAction74(12),
-                       new ReduceAction75(12),
-                       new ReduceAction76(12),
-                       new ReduceAction77(12),
-                       new ReduceAction78(12),
-                       new ReduceAction79(12),
-                       new ReduceAction80(12),
-                       new ReduceAction81(12),
-                       new ReduceAction82(12),
-                       new ReduceAction83(12),
-                       new ReduceAction84(12),
-                       new ReduceAction85(12),
-                       new ReduceAction86(12),
-                       new ReduceAction87(12),
-                       new ReduceAction88(12),
-                       new ReduceAction89(12),
-                       new ReduceAction90(12),
-                       new ReduceAction91(12),
-                       new ReduceAction92(12),
-                       new ReduceAction93(12),
-                       new ReduceAction94(12),
-                       new ReduceAction95(12),
-                       new ReduceAction96(12),
-                       new ReduceAction97(12),
-                       new ReduceAction98(12),
-                       new ReduceAction99(12),
-                       new ReduceAction100(12),
-                       new ReduceAction101(12),
-                       new ReduceAction102(12),
-                       new ReduceAction103(12),
-                       new ReduceAction104(12),
-                       new ReduceAction105(12),
-                       new ReduceAction106(12),
-                       new ReduceAction107(12),
-                       new ReduceAction108(12),
-                       new ReduceAction109(12),
-                       new ReduceAction110(12),
-                       new ReduceAction111(12),
-                       new ReduceAction112(12),
-                       new ReduceAction113(12),
-                       new ReduceAction114(12),
-                       new ReduceAction115(12),
-                       new ReduceAction116(12),
-                       new ReduceAction117(12),
-                       new ReduceAction118(12),
-                       new ReduceAction119(12),
-                       new ReduceAction120(12),
-                       new ReduceAction121(12),
-                       new ReduceAction122(12),
-                       new ReduceAction123(12),
-                       new ReduceAction124(12),
-                       new ReduceAction125(12),
-                       new ReduceAction126(12),
-                       new ReduceAction127(12),
-                       new ReduceAction128(12),
-                       new ReduceAction129(12),
-                       new ReduceAction130(12),
-                       new ReduceAction131(12),
-                       new ReduceAction132(12),
-                       new ReduceAction133(12),
-                       new ReduceAction134(12),
-                       new ReduceAction135(12),
-                       new ReduceAction136(12),
-                       new ReduceAction137(12),
-                       new ReduceAction138(12),
-                       new ReduceAction139(12),
-                       new ReduceAction140(12),
-                       new ReduceAction141(12),
-                       new ReduceAction142(12),
-                       new ReduceAction143(12),
-                       new ReduceAction144(12),
-                       new ReduceAction145(12),
-                       new ReduceAction146(12),
-                       new ReduceAction147(12),
-                       new ReduceAction148(12),
-                       new ReduceAction149(12),
-                       new ReduceAction150(12),
-                       new ReduceAction151(12),
-                       new ReduceAction152(12),
-                       new ReduceAction153(12),
-                       new ReduceAction154(12),
-                       new ReduceAction155(12),
-                       new ReduceAction156(12),
-                       new ReduceAction157(12),
-                       new ReduceAction158(12),
-                       new ReduceAction159(12),
-                       new ReduceAction160(13),
-                       new ReduceAction161(13),
-                       new ReduceAction162(14),
-                       new ReduceAction163(14),
-                       new ReduceAction164(15),
-                       new ReduceAction165(15),
-                       new ReduceAction166(16),
-                       new ReduceAction167(16),
-                       new ReduceAction168(16),
-                       new ReduceAction169(16),
-                       new ReduceAction170(17),
-                       new ReduceAction171(17),
-                       new ReduceAction172(17),
-                       new ReduceAction173(17),
-                       new ReduceAction174(17),
-                       new ReduceAction175(17),
-                       new ReduceAction176(17),
-                       new ReduceAction177(17),
-                       new ReduceAction178(17),
-                       new ReduceAction179(17),
-                       new ReduceAction180(17),
-                       new ReduceAction181(17),
-                       new ReduceAction182(17),
-                       new ReduceAction183(17),
-                       new ReduceAction184(17),
-                       new ReduceAction185(17),
-                       new ReduceAction186(17),
-                       new ReduceAction187(17),
-                       new ReduceAction188(18),
-                       new ReduceAction189(18),
-                       new ReduceAction190(18),
-                       new ReduceAction191(18),
-                       new ReduceAction192(18),
-                       new ReduceAction193(18),
-                       new ReduceAction194(18),
-                       new ReduceAction195(18),
-                       new ReduceAction196(19),
-                       new ReduceAction197(19),
-                       new ReduceAction198(19),
-                       new ReduceAction199(19),
-                       new ReduceAction200(20),
-                       new ReduceAction201(20),
-                       new ReduceAction202(20),
-                       new ReduceAction203(21),
-                       new ReduceAction204(22),
-                       new ReduceAction205(22),
-                       new ReduceAction206(22),
-                       new ReduceAction207(23),
-                       new ReduceAction208(24),
-                       new ReduceAction209(24),
-                       new ReduceAction210(24),
-                       new ReduceAction211(24),
-                       new ReduceAction212(24),
-                       new ReduceAction213(24),
-                       new ReduceAction214(25),
-                       new ReduceAction215(26),
-                       new ReduceAction216(26),
-                       new ReduceAction217(27),
-                       new ReduceAction218(28),
-                       new ReduceAction218(28),
-                       new ReduceAction220(28),
-                       new ReduceAction221(29),
-                       new ReduceAction222(29),
-                       new ReduceAction223(29),
-                       new ReduceAction224(30),
-                       new ReduceAction225(30),
-                       new ReduceAction226(30),
-                       new ReduceAction227(31),
-                       new ReduceAction228(31),
-                       new ReduceAction229(31),
-                       new ReduceAction230(31),
-                       new ReduceAction231(32),
-                       new ReduceAction232(32),
-                       new ReduceAction233(33),
-                       new ReduceAction233(34),
-                       new ReduceAction235(35),
-                       new ReduceAction236(35),
-                       new ReduceAction237(35),
-                       new ReduceAction238(35),
-                       new ReduceAction239(36),
-                       new ReduceAction240(36),
-                       new ReduceAction241(37),
-                       new ReduceAction242(37),
-                       new ReduceAction243(38),
-                       new ReduceAction244(38),
-                       new ReduceAction235(39),
-                       new ReduceAction238(40),
-                       new ReduceAction238(40),
-                       new ReduceAction248(40),
-                       new ReduceAction249(40),
-                       new ReduceAction250(40),
-                       new ReduceAction251(40),
-                       new ReduceAction252(40),
-                       new ReduceAction253(40),
-                       new ReduceAction254(40),
-                       new ReduceAction255(40),
-                       new ReduceAction256(40),
-                       new ReduceAction257(40),
-                       new ReduceAction258(40),
-                       new ReduceAction238(40),
-                       new ReduceAction238(40),
-                       new ReduceAction238(40),
-                       new ReduceAction238(40),
-                       new ReduceAction238(40),
-                       new ReduceAction238(40),
-                       new ReduceAction265(40),
-                       new ReduceAction266(40),
-                       new ReduceAction267(40),
-                       new ReduceAction268(40),
-                       new ReduceAction269(40),
-                       new ReduceAction270(40),
-                       new ReduceAction271(40),
-                       new ReduceAction272(40),
-                       new ReduceAction273(41),
-                       new ReduceAction274(42),
-                       new ReduceAction275(42),
-                       new ReduceAction276(43),
-                       new ReduceAction277(43),
-                       new ReduceAction278(43),
-                       new ReduceAction279(43),
-                       new ReduceAction280(43),
-                       new ReduceAction281(43),
-                       new ReduceAction282(43),
-                       new ReduceAction283(43),
-                       new ReduceAction284(43),
-                       new ReduceAction285(44),
-                       new ReduceAction286(44),
-                       new ReduceAction287(44),
-                       new ReduceAction288(44),
-                       new ReduceAction289(44),
-                       new ReduceAction290(44),
-                       new ReduceAction291(45),
-                       new ReduceAction292(45),
-                       new ReduceAction293(46),
-                       new ReduceAction294(47),
-                       new ReduceAction295(47),
-                       new ReduceAction296(47),
-                       new ReduceAction297(47),
-                       new ReduceAction298(48),
-                       new ReduceAction299(48),
-                       new ReduceAction300(48),
-                       new ReduceAction301(48),
-                       new ReduceAction302(48),
-                       new ReduceAction303(48),
-                       new ReduceAction304(48),
-                       new ReduceAction305(48),
-                       new ReduceAction306(48),
-                       new ReduceAction307(48),
-                       new ReduceAction308(49),
-                       new ReduceAction309(49),
-                       new ReduceAction310(50),
-                       new ReduceAction311(50),
-                       new ReduceAction312(51),
-                       new ReduceAction313(51),
-                       new ReduceAction314(51),
-                       new ReduceAction315(51),
-                       new ReduceAction316(51),
-                       new ReduceAction235(52),
-                       new ReduceAction237(52),
-                       new ReduceAction319(53),
-                       new ReduceAction320(53),
-                       new ReduceAction321(54),
-                       new ReduceAction322(54),
-                       new ReduceAction323(55),
-                       new ReduceAction324(55),
-                       new ReduceAction325(55),
-                       new ReduceAction326(55),
-                       new ReduceAction327(56),
-                       new ReduceAction328(56),
-                       new ReduceAction329(56),
-                       new ReduceAction330(56),
-                       new ReduceAction331(57),
-                       new ReduceAction238(58),
-                       new ReduceAction267(58),
-                       new ReduceAction268(58),
-                       new ReduceAction335(58),
-                       new ReduceAction238(59),
-                       new ReduceAction337(59),
-                       new ReduceAction238(60),
-                       new ReduceAction339(60),
-                       new ReduceAction340(60),
-                       new ReduceAction341(60),
-                       new ReduceAction238(61),
-                       new ReduceAction343(61),
-                       new ReduceAction238(62),
-                       new ReduceAction345(62),
-                       new ReduceAction346(62),
-                       new ReduceAction347(62),
-                       new ReduceAction348(62),
-                       new ReduceAction349(62),
-                       new ReduceAction350(62),
-                       new ReduceAction351(62),
-                       new ReduceAction352(62),
-                       new ReduceAction353(62),
-                       new ReduceAction354(62),
-                       new ReduceAction355(62),
-                       new ReduceAction238(63),
-                       new ReduceAction357(63),
-                       new ReduceAction358(63),
-                       new ReduceAction238(64),
-                       new ReduceAction360(64),
-                       new ReduceAction361(64),
-                       new ReduceAction362(64),
-                       new ReduceAction238(65),
-                       new ReduceAction364(65),
-                       new ReduceAction365(65),
-                       new ReduceAction238(66),
-                       new ReduceAction367(66),
-                       new ReduceAction368(66),
-                       new ReduceAction369(66),
-                       new ReduceAction370(67),
-                       new ReduceAction371(67),
-                       new ReduceAction265(67),
-                       new ReduceAction266(67),
-                       new ReduceAction269(67),
-                       new ReduceAction270(67),
-                       new ReduceAction271(67),
-                       new ReduceAction272(67),
-                       new ReduceAction378(67),
-                       new ReduceAction379(67),
-                       new ReduceAction380(67),
-                       new ReduceAction381(67),
-                       new ReduceAction382(67),
-                       new ReduceAction383(67),
-                       new ReduceAction384(67),
-                       new ReduceAction385(67),
-                       new ReduceAction386(67),
-                       new ReduceAction387(67),
-                       new ReduceAction388(67),
-                       new ReduceAction389(67),
-                       new ReduceAction390(67),
-                       new ReduceAction238(67),
-                       new ReduceAction392(67),
-                       new ReduceAction393(67),
-                       new ReduceAction394(67),
-                       new ReduceAction395(68),
-                       new ReduceAction396(68),
-                       new ReduceAction397(69),
-                       new ReduceAction398(70),
-                       new ReduceAction397(71),
-                       new ReduceAction400(72),
-                       new ReduceAction401(73),
-                       new ReduceAction402(74),
-                       new ReduceAction403(74),
-                       new ReduceAction202(74),
-                       new ReduceAction405(74),
-                       new ReduceAction402(75),
-                       new ReduceAction403(75),
-                       new ReduceAction408(75),
-                       new ReduceAction202(75),
-                       new ReduceAction405(75),
-                       new ReduceAction402(76),
-                       new ReduceAction403(76),
-                       new ReduceAction413(77),
-                       new ReduceAction414(78),
-                       new ReduceAction415(78),
-                       new ReduceAction416(79),
-                       new ReduceAction417(79),
-                       new ReduceAction418(79),
-                       new ReduceAction419(79),
-                       new ReduceAction420(80),
-                       new ReduceAction421(80),
-                       new ReduceAction422(80),
-                       new ReduceAction423(81),
-                       new ReduceAction424(82),
-                       new ReduceAction425(83),
-                       new ReduceAction425(83),
-                       new ReduceAction427(84),
-                       new ReduceAction428(84),
-                       new ReduceAction36(84),
-                       new ReduceAction430(85),
-                       new ReduceAction431(85),
-                       new ReduceAction432(86),
-                       new ReduceAction433(86),
-                       new ReduceAction425(86),
-                       new ReduceAction67(87),
-                       new ReduceAction68(88),
-                       new ReduceAction69(88),
-                       new ReduceAction70(88),
-                       new ReduceAction71(88),
-                       new ReduceAction72(88),
-                       new ReduceAction73(88),
-                       new ReduceAction78(88),
-                       new ReduceAction79(88),
-                       new ReduceAction80(88),
-                       new ReduceAction81(88),
-                       new ReduceAction82(88),
-                       new ReduceAction83(88),
-                       new ReduceAction84(88),
-                       new ReduceAction85(88),
-                       new ReduceAction188(89),
-                       new ReduceAction189(89),
-                       new ReduceAction190(89),
-                       new ReduceAction191(89),
-                       new ReduceAction227(90),
-                       new ReduceAction228(90),
-                       new ReduceAction238(91),
-                       new ReduceAction267(91),
-                       new ReduceAction268(91),
-                       new ReduceAction238(92),
-                       new ReduceAction337(92),
-                       new ReduceAction238(93),
-                       new ReduceAction339(93),
-                       new ReduceAction340(93),
-                       new ReduceAction341(93),
-                       new ReduceAction238(94),
-                       new ReduceAction343(94),
-                       new ReduceAction238(95),
-                       new ReduceAction345(95),
-                       new ReduceAction346(95),
-                       new ReduceAction347(95),
-                       new ReduceAction348(95),
-                       new ReduceAction349(95),
-                       new ReduceAction350(95),
-                       new ReduceAction351(95),
-                       new ReduceAction352(95),
-                       new ReduceAction353(95),
-                       new ReduceAction354(95),
-                       new ReduceAction355(95),
-                       new ReduceAction238(96),
-                       new ReduceAction357(96),
-                       new ReduceAction358(96),
-                       new ReduceAction238(97),
-                       new ReduceAction360(97),
-                       new ReduceAction361(97),
-                       new ReduceAction362(97),
-                       new ReduceAction238(98),
-                       new ReduceAction364(98),
-                       new ReduceAction365(98),
-                       new ReduceAction238(99),
-                       new ReduceAction367(99),
-                       new ReduceAction368(99),
-                       new ReduceAction369(99),
-                       new ReduceAction370(100),
-                       new ReduceAction371(100),
-                       new ReduceAction265(100),
-                       new ReduceAction266(100),
-                       new ReduceAction269(100),
-                       new ReduceAction270(100),
-                       new ReduceAction271(100),
-                       new ReduceAction272(100),
-                       new ReduceAction379(100),
-                       new ReduceAction383(100),
-                       new ReduceAction384(100),
-                       new ReduceAction385(100),
-                       new ReduceAction386(100),
-                       new ReduceAction387(100),
-                       new ReduceAction388(100),
-                       new ReduceAction389(100),
-                       new ReduceAction390(100),
-                       new ReduceAction238(100),
-                       new ReduceAction392(100),
-                       new ReduceAction393(100),
-                       new ReduceAction394(100),
-                       new ReduceAction235(101),
-                       new ReduceAction236(101),
-                       new ReduceAction237(101),
-                       new ReduceAction238(101),
-                       new ReduceAction238(102),
-                       new ReduceAction238(102),
-                       new ReduceAction248(102),
-                       new ReduceAction249(102),
-                       new ReduceAction250(102),
-                       new ReduceAction251(102),
-                       new ReduceAction252(102),
-                       new ReduceAction253(102),
-                       new ReduceAction254(102),
-                       new ReduceAction255(102),
-                       new ReduceAction256(102),
-                       new ReduceAction257(102),
-                       new ReduceAction258(102),
-                       new ReduceAction238(102),
-                       new ReduceAction238(102),
-                       new ReduceAction238(102),
-                       new ReduceAction238(102),
-                       new ReduceAction238(102),
-                       new ReduceAction238(102),
-                       new ReduceAction265(102),
-                       new ReduceAction266(102),
-                       new ReduceAction267(102),
-                       new ReduceAction268(102),
-                       new ReduceAction269(102),
-                       new ReduceAction270(102),
-                       new ReduceAction271(102),
-                       new ReduceAction272(102),
-                       new ReduceAction274(103),
-                       new ReduceAction275(103),
-                       new ReduceAction276(104),
-                       new ReduceAction277(104),
-                       new ReduceAction278(104),
-                       new ReduceAction279(104),
-                       new ReduceAction280(104),
-                       new ReduceAction281(104),
-                       new ReduceAction282(104),
-                       new ReduceAction283(104),
-                       new ReduceAction284(104),
-                       new ReduceAction293(105),
-                       new ReduceAction294(106),
-                       new ReduceAction295(106),
-                       new ReduceAction296(106),
-                       new ReduceAction297(106),
-                       new ReduceAction298(107),
-                       new ReduceAction299(107),
-                       new ReduceAction300(107),
-                       new ReduceAction301(107),
-                       new ReduceAction302(107),
-                       new ReduceAction303(107),
-                       new ReduceAction304(107),
-                       new ReduceAction305(107),
-                       new ReduceAction306(107),
-                       new ReduceAction307(107),
-                       new ReduceAction310(108),
-                       new ReduceAction311(108),
-                       new ReduceAction312(109),
-                       new ReduceAction319(110),
-                       new ReduceAction320(110),
-                       new ReduceAction321(111),
-                       new ReduceAction322(111),
-                       new ReduceAction323(112),
-                       new ReduceAction324(112),
-                       new ReduceAction325(112),
-                       new ReduceAction326(112),
-                       new ReduceAction327(113),
-                       new ReduceAction328(113),
-                       new ReduceAction238(114),
-                       new ReduceAction267(114),
-                       new ReduceAction268(114),
-                       new ReduceAction335(114),
-                       new ReduceAction238(115),
-                       new ReduceAction267(115),
-                       new ReduceAction268(115),
-                       new ReduceAction235(116),
-                       new ReduceAction236(116),
-                       new ReduceAction237(116),
-                       new ReduceAction235(117),
-                       new ReduceAction236(117),
-                       new ReduceAction237(117),
-                       new ReduceAction238(118),
-                       new ReduceAction267(118),
-                       new ReduceAction268(118),
-                       new ReduceAction238(119),
-                       new ReduceAction337(119),
-                       new ReduceAction238(120),
-                       new ReduceAction339(120),
-                       new ReduceAction340(120),
-                       new ReduceAction341(120),
-                       new ReduceAction238(121),
-                       new ReduceAction343(121),
-                       new ReduceAction238(122),
-                       new ReduceAction345(122),
-                       new ReduceAction346(122),
-                       new ReduceAction347(122),
-                       new ReduceAction348(122),
-                       new ReduceAction349(122),
-                       new ReduceAction350(122),
-                       new ReduceAction351(122),
-                       new ReduceAction352(122),
-                       new ReduceAction353(122),
-                       new ReduceAction354(122),
-                       new ReduceAction355(122),
-                       new ReduceAction238(123),
-                       new ReduceAction357(123),
-                       new ReduceAction358(123),
-                       new ReduceAction238(124),
-                       new ReduceAction360(124),
-                       new ReduceAction361(124),
-                       new ReduceAction362(124),
-                       new ReduceAction238(125),
-                       new ReduceAction364(125),
-                       new ReduceAction365(125),
-                       new ReduceAction238(126),
-                       new ReduceAction367(126),
-                       new ReduceAction368(126),
-                       new ReduceAction369(126),
-                       new ReduceAction370(127),
-                       new ReduceAction371(127),
-                       new ReduceAction265(127),
-                       new ReduceAction266(127),
-                       new ReduceAction269(127),
-                       new ReduceAction270(127),
-                       new ReduceAction271(127),
-                       new ReduceAction272(127),
-                       new ReduceAction378(127),
-                       new ReduceAction379(127),
-                       new ReduceAction383(127),
-                       new ReduceAction384(127),
-                       new ReduceAction385(127),
-                       new ReduceAction386(127),
-                       new ReduceAction387(127),
-                       new ReduceAction388(127),
-                       new ReduceAction389(127),
-                       new ReduceAction390(127),
-                       new ReduceAction238(127),
-                       new ReduceAction393(127),
-                       new ReduceAction394(127),
-                       new ReduceAction238(128),
-                       new ReduceAction267(128),
-                       new ReduceAction268(128),
-                       new ReduceAction238(129),
-                       new ReduceAction337(129),
-                       new ReduceAction238(130),
-                       new ReduceAction339(130),
-                       new ReduceAction340(130),
-                       new ReduceAction341(130),
-                       new ReduceAction238(131),
-                       new ReduceAction343(131),
-                       new ReduceAction238(132),
-                       new ReduceAction345(132),
-                       new ReduceAction346(132),
-                       new ReduceAction347(132),
-                       new ReduceAction348(132),
-                       new ReduceAction349(132),
-                       new ReduceAction350(132),
-                       new ReduceAction351(132),
-                       new ReduceAction352(132),
-                       new ReduceAction353(132),
-                       new ReduceAction354(132),
-                       new ReduceAction355(132),
-                       new ReduceAction238(133),
-                       new ReduceAction357(133),
-                       new ReduceAction358(133),
-                       new ReduceAction238(134),
-                       new ReduceAction360(134),
-                       new ReduceAction361(134),
-                       new ReduceAction362(134),
-                       new ReduceAction238(135),
-                       new ReduceAction364(135),
-                       new ReduceAction365(135),
-                       new ReduceAction238(136),
-                       new ReduceAction367(136),
-                       new ReduceAction690(136),
-                       new ReduceAction691(137),
-                       new ReduceAction692(137),
-                       new ReduceAction269(137),
-                       new ReduceAction270(137),
-                       new ReduceAction695(137),
-                       new ReduceAction379(137),
-                       new ReduceAction383(137),
-                       new ReduceAction384(137),
-                       new ReduceAction385(137),
-                       new ReduceAction386(137),
-                       new ReduceAction387(137),
-                       new ReduceAction388(137),
-                       new ReduceAction389(137),
-                       new ReduceAction390(137),
-                       new ReduceAction238(137),
-                       new ReduceAction393(137),
-                       new ReduceAction394(137),
-                       new ReduceAction708(138),
-                       new ReduceAction709(138),
-                       new ReduceAction238(139),
-                       new ReduceAction267(139),
-                       new ReduceAction268(139),
-                       new ReduceAction238(140),
-                       new ReduceAction267(140),
-                       new ReduceAction268(140),
-                       new ReduceAction716(141),
-                       new ReduceAction717(141),
-                       new ReduceAction718(142),
-                       new ReduceAction719(142),
-                       new ReduceAction720(143),
-                       new ReduceAction721(143),
-                       new ReduceAction722(144),
-                       new ReduceAction723(144),
-                       new ReduceAction720(145),
-                       new ReduceAction721(145),
-                       new ReduceAction726(146),
-                       new ReduceAction727(146),
-                       new ReduceAction728(147),
-                       new ReduceAction729(147),
-                       new ReduceAction730(148),
-                       new ReduceAction731(148),
-                       new ReduceAction732(149),
-                       new ReduceAction733(149),
-                       new ReduceAction231(150),
-                       new ReduceAction735(150),
-                       new ReduceAction408(151),
-                       new ReduceAction737(151),
-                       new ReduceAction738(152),
-                       new ReduceAction739(152),
-                       new ReduceAction408(153),
-                       new ReduceAction737(153),
-                       new ReduceAction414(154),
-                       new ReduceAction743(154),
-                       new ReduceAction744(155),
-                       new ReduceAction745(155),
-                       new ReduceAction746(156),
-                       new ReduceAction747(156)
-               )
-       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
-
-       # Location of the last token before the end of a production
-       # So outside the production for epilon production
-       var _last_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]
-
-       # Already visited epsilon production that waits something before them
-       var _need_before_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: nullable ANode)
-       do
-               if n == null then
-                       return
-               else if n isa Token then
-                       var loc = n.location
-                       _last_location = loc
-
-                       # Add a first token to productions that need one
-                       for no in _need_first_prods do
-                               no._first_location = loc
-                       end
-                       _need_first_prods.clear
-
-                       # Find location for already visited epsilon production that need one
-                       for no in _need_after_epsilons do
-                               # Epsilon production that is in the middle of a non-epsilon production
-                               # The epsilon production has both a token before and after it
-                               var endl = loc
-                               var startl = no._last_location
-                               no.location = new Location(endl.file, startl.line_end, endl.line_start, startl.column_end, endl.column_start)
-                       end
-                       _need_after_epsilons.clear
-               else
-                       assert n isa Prod
-                       _need_first_prods.add(n)
-
-                       var old_last = _last_location
-                       _last_location = null
-                       n.visit_all(self)
-                       var endl = _last_location
-                       if endl == null then _last_location = old_last
-
-                       n._last_location = endl
-                       var startl = n._first_location
-                       if startl != null then
-                               # Non-epsilon production
-                               assert endl != null
-
-                               n.location = new Location(startl.file, startl.line_start, endl.line_end, startl.column_start, endl.column_end)
-
-                               for no in _need_before_epsilons do
-                                       # Epsilon production that starts the current non-epsilon production
-                                       #var startl = n.location
-                                       no.location = new Location(startl.file, startl.line_start, startl.line_start, startl.column_start, startl.column_start)
-                               end
-                               _need_before_epsilons.clear
-
-                               for no in _need_after_epsilons do
-                                       # Epsilon production that finishes the current non-epsilon production
-                                       #var endl = n.location
-                                       no.location = new Location(endl.file, endl.line_end, endl.line_end, endl.column_end, endl.column_end)
-                               end
-                               _need_after_epsilons.clear
-                       else
-                               # No first token means epsilon production (or "throw all my tokens" production)
-                               # So, it must be located it later
-                               if endl == null then
-                                       # Epsilon production that starts a parent non-epsilon production
-                                       _need_before_epsilons.add(n)
-                               else
-                                       # Epsilon production in the middle or that finishes a parent non-epsilon production
-                                       _need_after_epsilons.add(n)
-                               end
-                       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
+redef class Parser
+       redef fun build_reduce_table
+       do
+               var reduce_table = new Array[ReduceAction].with_capacity(1784)
+               reduce_table.add new ReduceAction0(0)
+               reduce_table.add new ReduceAction1(0)
+               reduce_table.add new ReduceAction2(0)
+               reduce_table.add new ReduceAction3(0)
+               reduce_table.add new ReduceAction4(0)
+               reduce_table.add new ReduceAction5(0)
+               reduce_table.add new ReduceAction6(0)
+               reduce_table.add new ReduceAction7(0)
+               reduce_table.add new ReduceAction8(0)
+               reduce_table.add new ReduceAction9(0)
+               reduce_table.add new ReduceAction10(0)
+               reduce_table.add new ReduceAction11(0)
+               reduce_table.add new ReduceAction12(0)
+               reduce_table.add new ReduceAction13(0)
+               reduce_table.add new ReduceAction14(0)
+               reduce_table.add new ReduceAction15(0)
+               reduce_table.add new ReduceAction16(1)
+               reduce_table.add new ReduceAction17(1)
+               reduce_table.add new ReduceAction18(1)
+               reduce_table.add new ReduceAction19(1)
+               reduce_table.add new ReduceAction20(1)
+               reduce_table.add new ReduceAction21(1)
+               reduce_table.add new ReduceAction22(1)
+               reduce_table.add new ReduceAction23(1)
+               reduce_table.add new ReduceAction24(1)
+               reduce_table.add new ReduceAction25(1)
+               reduce_table.add new ReduceAction26(2)
+               reduce_table.add new ReduceAction27(2)
+               reduce_table.add new ReduceAction28(2)
+               reduce_table.add new ReduceAction29(2)
+               reduce_table.add new ReduceAction30(2)
+               reduce_table.add new ReduceAction31(2)
+               reduce_table.add new ReduceAction32(2)
+               reduce_table.add new ReduceAction33(2)
+               reduce_table.add new ReduceAction34(2)
+               reduce_table.add new ReduceAction35(2)
+               reduce_table.add new ReduceAction36(2)
+               reduce_table.add new ReduceAction37(2)
+               reduce_table.add new ReduceAction38(2)
+               reduce_table.add new ReduceAction39(2)
+               reduce_table.add new ReduceAction40(2)
+               reduce_table.add new ReduceAction41(2)
+               reduce_table.add new ReduceAction42(2)
+               reduce_table.add new ReduceAction43(2)
+               reduce_table.add new ReduceAction44(2)
+               reduce_table.add new ReduceAction45(2)
+               reduce_table.add new ReduceAction46(3)
+               reduce_table.add new ReduceAction47(3)
+               reduce_table.add new ReduceAction48(4)
+               reduce_table.add new ReduceAction49(4)
+               reduce_table.add new ReduceAction50(4)
+               reduce_table.add new ReduceAction51(5)
+               reduce_table.add new ReduceAction52(5)
+               reduce_table.add new ReduceAction53(5)
+               reduce_table.add new ReduceAction54(6)
+               reduce_table.add new ReduceAction55(6)
+               reduce_table.add new ReduceAction56(6)
+               reduce_table.add new ReduceAction57(6)
+               reduce_table.add new ReduceAction58(6)
+               reduce_table.add new ReduceAction59(6)
+               reduce_table.add new ReduceAction60(6)
+               reduce_table.add new ReduceAction61(6)
+               reduce_table.add new ReduceAction62(6)
+               reduce_table.add new ReduceAction63(6)
+               reduce_table.add new ReduceAction64(6)
+               reduce_table.add new ReduceAction65(6)
+               reduce_table.add new ReduceAction66(6)
+               reduce_table.add new ReduceAction67(6)
+               reduce_table.add new ReduceAction68(6)
+               reduce_table.add new ReduceAction69(6)
+               reduce_table.add new ReduceAction70(6)
+               reduce_table.add new ReduceAction71(6)
+               reduce_table.add new ReduceAction72(6)
+               reduce_table.add new ReduceAction73(6)
+               reduce_table.add new ReduceAction74(6)
+               reduce_table.add new ReduceAction75(6)
+               reduce_table.add new ReduceAction76(6)
+               reduce_table.add new ReduceAction77(6)
+               reduce_table.add new ReduceAction78(6)
+               reduce_table.add new ReduceAction79(6)
+               reduce_table.add new ReduceAction80(6)
+               reduce_table.add new ReduceAction81(6)
+               reduce_table.add new ReduceAction82(6)
+               reduce_table.add new ReduceAction83(6)
+               reduce_table.add new ReduceAction84(6)
+               reduce_table.add new ReduceAction85(6)
+               reduce_table.add new ReduceAction86(6)
+               reduce_table.add new ReduceAction87(6)
+               reduce_table.add new ReduceAction88(6)
+               reduce_table.add new ReduceAction89(6)
+               reduce_table.add new ReduceAction90(6)
+               reduce_table.add new ReduceAction91(6)
+               reduce_table.add new ReduceAction92(6)
+               reduce_table.add new ReduceAction93(6)
+               reduce_table.add new ReduceAction94(7)
+               reduce_table.add new ReduceAction95(7)
+               reduce_table.add new ReduceAction96(7)
+               reduce_table.add new ReduceAction97(7)
+               reduce_table.add new ReduceAction98(7)
+               reduce_table.add new ReduceAction99(7)
+               reduce_table.add new ReduceAction100(8)
+               reduce_table.add new ReduceAction101(8)
+               reduce_table.add new ReduceAction102(8)
+               reduce_table.add new ReduceAction103(9)
+               reduce_table.add new ReduceAction104(10)
+               reduce_table.add new ReduceAction105(10)
+               reduce_table.add new ReduceAction106(11)
+               reduce_table.add new ReduceAction107(11)
+               reduce_table.add new ReduceAction108(11)
+               reduce_table.add new ReduceAction109(11)
+               reduce_table.add new ReduceAction110(11)
+               reduce_table.add new ReduceAction111(11)
+               reduce_table.add new ReduceAction112(11)
+               reduce_table.add new ReduceAction113(11)
+               reduce_table.add new ReduceAction114(11)
+               reduce_table.add new ReduceAction115(11)
+               reduce_table.add new ReduceAction116(12)
+               reduce_table.add new ReduceAction117(12)
+               reduce_table.add new ReduceAction118(12)
+               reduce_table.add new ReduceAction119(13)
+               reduce_table.add new ReduceAction120(14)
+               reduce_table.add new ReduceAction121(14)
+               reduce_table.add new ReduceAction122(14)
+               reduce_table.add new ReduceAction123(14)
+               reduce_table.add new ReduceAction124(14)
+               reduce_table.add new ReduceAction125(14)
+               reduce_table.add new ReduceAction126(14)
+               reduce_table.add new ReduceAction127(14)
+               reduce_table.add new ReduceAction128(14)
+               reduce_table.add new ReduceAction129(14)
+               reduce_table.add new ReduceAction130(14)
+               reduce_table.add new ReduceAction131(14)
+               reduce_table.add new ReduceAction132(14)
+               reduce_table.add new ReduceAction133(14)
+               reduce_table.add new ReduceAction134(14)
+               reduce_table.add new ReduceAction135(14)
+               reduce_table.add new ReduceAction136(14)
+               reduce_table.add new ReduceAction137(14)
+               reduce_table.add new ReduceAction138(14)
+               reduce_table.add new ReduceAction139(14)
+               reduce_table.add new ReduceAction140(14)
+               reduce_table.add new ReduceAction141(14)
+               reduce_table.add new ReduceAction142(14)
+               reduce_table.add new ReduceAction143(14)
+               reduce_table.add new ReduceAction144(14)
+               reduce_table.add new ReduceAction145(14)
+               reduce_table.add new ReduceAction146(14)
+               reduce_table.add new ReduceAction147(14)
+               reduce_table.add new ReduceAction148(14)
+               reduce_table.add new ReduceAction149(14)
+               reduce_table.add new ReduceAction150(14)
+               reduce_table.add new ReduceAction151(14)
+               reduce_table.add new ReduceAction152(14)
+               reduce_table.add new ReduceAction153(14)
+               reduce_table.add new ReduceAction154(14)
+               reduce_table.add new ReduceAction155(14)
+               reduce_table.add new ReduceAction156(14)
+               reduce_table.add new ReduceAction157(14)
+               reduce_table.add new ReduceAction158(14)
+               reduce_table.add new ReduceAction159(14)
+               reduce_table.add new ReduceAction160(14)
+               reduce_table.add new ReduceAction161(14)
+               reduce_table.add new ReduceAction162(14)
+               reduce_table.add new ReduceAction163(14)
+               reduce_table.add new ReduceAction164(14)
+               reduce_table.add new ReduceAction165(14)
+               reduce_table.add new ReduceAction166(14)
+               reduce_table.add new ReduceAction167(14)
+               reduce_table.add new ReduceAction168(14)
+               reduce_table.add new ReduceAction169(14)
+               reduce_table.add new ReduceAction170(14)
+               reduce_table.add new ReduceAction171(14)
+               reduce_table.add new ReduceAction172(14)
+               reduce_table.add new ReduceAction173(14)
+               reduce_table.add new ReduceAction174(14)
+               reduce_table.add new ReduceAction175(14)
+               reduce_table.add new ReduceAction176(14)
+               reduce_table.add new ReduceAction177(14)
+               reduce_table.add new ReduceAction178(14)
+               reduce_table.add new ReduceAction179(14)
+               reduce_table.add new ReduceAction180(14)
+               reduce_table.add new ReduceAction181(14)
+               reduce_table.add new ReduceAction182(14)
+               reduce_table.add new ReduceAction183(14)
+               reduce_table.add new ReduceAction184(14)
+               reduce_table.add new ReduceAction185(14)
+               reduce_table.add new ReduceAction186(14)
+               reduce_table.add new ReduceAction187(14)
+               reduce_table.add new ReduceAction188(14)
+               reduce_table.add new ReduceAction189(14)
+               reduce_table.add new ReduceAction190(14)
+               reduce_table.add new ReduceAction191(14)
+               reduce_table.add new ReduceAction192(14)
+               reduce_table.add new ReduceAction193(14)
+               reduce_table.add new ReduceAction194(14)
+               reduce_table.add new ReduceAction195(14)
+               reduce_table.add new ReduceAction196(14)
+               reduce_table.add new ReduceAction197(14)
+               reduce_table.add new ReduceAction198(14)
+               reduce_table.add new ReduceAction199(14)
+               reduce_table.add new ReduceAction200(14)
+               reduce_table.add new ReduceAction201(14)
+               reduce_table.add new ReduceAction202(14)
+               reduce_table.add new ReduceAction203(14)
+               reduce_table.add new ReduceAction204(14)
+               reduce_table.add new ReduceAction205(14)
+               reduce_table.add new ReduceAction206(14)
+               reduce_table.add new ReduceAction207(14)
+               reduce_table.add new ReduceAction208(14)
+               reduce_table.add new ReduceAction209(14)
+               reduce_table.add new ReduceAction210(14)
+               reduce_table.add new ReduceAction211(14)
+               reduce_table.add new ReduceAction212(14)
+               reduce_table.add new ReduceAction213(14)
+               reduce_table.add new ReduceAction214(14)
+               reduce_table.add new ReduceAction215(14)
+               reduce_table.add new ReduceAction216(14)
+               reduce_table.add new ReduceAction217(14)
+               reduce_table.add new ReduceAction218(14)
+               reduce_table.add new ReduceAction219(14)
+               reduce_table.add new ReduceAction220(14)
+               reduce_table.add new ReduceAction221(14)
+               reduce_table.add new ReduceAction222(14)
+               reduce_table.add new ReduceAction223(14)
+               reduce_table.add new ReduceAction224(14)
+               reduce_table.add new ReduceAction225(14)
+               reduce_table.add new ReduceAction226(14)
+               reduce_table.add new ReduceAction227(14)
+               reduce_table.add new ReduceAction228(14)
+               reduce_table.add new ReduceAction229(14)
+               reduce_table.add new ReduceAction230(14)
+               reduce_table.add new ReduceAction231(14)
+               reduce_table.add new ReduceAction232(14)
+               reduce_table.add new ReduceAction233(14)
+               reduce_table.add new ReduceAction234(14)
+               reduce_table.add new ReduceAction235(14)
+               reduce_table.add new ReduceAction236(14)
+               reduce_table.add new ReduceAction237(14)
+               reduce_table.add new ReduceAction238(14)
+               reduce_table.add new ReduceAction239(14)
+               reduce_table.add new ReduceAction240(14)
+               reduce_table.add new ReduceAction241(14)
+               reduce_table.add new ReduceAction242(14)
+               reduce_table.add new ReduceAction243(14)
+               reduce_table.add new ReduceAction244(14)
+               reduce_table.add new ReduceAction245(14)
+               reduce_table.add new ReduceAction246(14)
+               reduce_table.add new ReduceAction247(14)
+               reduce_table.add new ReduceAction248(14)
+               reduce_table.add new ReduceAction249(14)
+               reduce_table.add new ReduceAction250(14)
+               reduce_table.add new ReduceAction251(14)
+               reduce_table.add new ReduceAction252(14)
+               reduce_table.add new ReduceAction253(14)
+               reduce_table.add new ReduceAction254(14)
+               reduce_table.add new ReduceAction255(14)
+               reduce_table.add new ReduceAction256(14)
+               reduce_table.add new ReduceAction257(14)
+               reduce_table.add new ReduceAction258(14)
+               reduce_table.add new ReduceAction259(14)
+               reduce_table.add new ReduceAction260(14)
+               reduce_table.add new ReduceAction261(14)
+               reduce_table.add new ReduceAction262(14)
+               reduce_table.add new ReduceAction263(14)
+               reduce_table.add new ReduceAction264(14)
+               reduce_table.add new ReduceAction265(14)
+               reduce_table.add new ReduceAction266(14)
+               reduce_table.add new ReduceAction267(14)
+               reduce_table.add new ReduceAction268(14)
+               reduce_table.add new ReduceAction269(14)
+               reduce_table.add new ReduceAction270(14)
+               reduce_table.add new ReduceAction271(14)
+               reduce_table.add new ReduceAction272(14)
+               reduce_table.add new ReduceAction273(14)
+               reduce_table.add new ReduceAction274(14)
+               reduce_table.add new ReduceAction275(14)
+               reduce_table.add new ReduceAction276(14)
+               reduce_table.add new ReduceAction277(14)
+               reduce_table.add new ReduceAction278(14)
+               reduce_table.add new ReduceAction279(14)
+               reduce_table.add new ReduceAction280(14)
+               reduce_table.add new ReduceAction281(14)
+               reduce_table.add new ReduceAction282(14)
+               reduce_table.add new ReduceAction283(14)
+               reduce_table.add new ReduceAction284(14)
+               reduce_table.add new ReduceAction285(14)
+               reduce_table.add new ReduceAction286(14)
+               reduce_table.add new ReduceAction287(14)
+               reduce_table.add new ReduceAction288(14)
+               reduce_table.add new ReduceAction289(14)
+               reduce_table.add new ReduceAction290(14)
+               reduce_table.add new ReduceAction291(14)
+               reduce_table.add new ReduceAction292(14)
+               reduce_table.add new ReduceAction293(14)
+               reduce_table.add new ReduceAction294(14)
+               reduce_table.add new ReduceAction295(14)
+               reduce_table.add new ReduceAction296(14)
+               reduce_table.add new ReduceAction297(14)
+               reduce_table.add new ReduceAction298(14)
+               reduce_table.add new ReduceAction299(14)
+               reduce_table.add new ReduceAction300(14)
+               reduce_table.add new ReduceAction301(14)
+               reduce_table.add new ReduceAction302(14)
+               reduce_table.add new ReduceAction303(14)
+               reduce_table.add new ReduceAction304(14)
+               reduce_table.add new ReduceAction305(14)
+               reduce_table.add new ReduceAction306(14)
+               reduce_table.add new ReduceAction307(14)
+               reduce_table.add new ReduceAction308(14)
+               reduce_table.add new ReduceAction309(14)
+               reduce_table.add new ReduceAction310(14)
+               reduce_table.add new ReduceAction311(14)
+               reduce_table.add new ReduceAction312(14)
+               reduce_table.add new ReduceAction313(14)
+               reduce_table.add new ReduceAction314(14)
+               reduce_table.add new ReduceAction315(14)
+               reduce_table.add new ReduceAction316(14)
+               reduce_table.add new ReduceAction317(14)
+               reduce_table.add new ReduceAction318(14)
+               reduce_table.add new ReduceAction319(14)
+               reduce_table.add new ReduceAction320(14)
+               reduce_table.add new ReduceAction321(14)
+               reduce_table.add new ReduceAction322(14)
+               reduce_table.add new ReduceAction323(14)
+               reduce_table.add new ReduceAction324(14)
+               reduce_table.add new ReduceAction325(14)
+               reduce_table.add new ReduceAction326(14)
+               reduce_table.add new ReduceAction327(14)
+               reduce_table.add new ReduceAction328(14)
+               reduce_table.add new ReduceAction329(14)
+               reduce_table.add new ReduceAction330(14)
+               reduce_table.add new ReduceAction331(14)
+               reduce_table.add new ReduceAction332(14)
+               reduce_table.add new ReduceAction333(14)
+               reduce_table.add new ReduceAction334(14)
+               reduce_table.add new ReduceAction335(14)
+               reduce_table.add new ReduceAction336(14)
+               reduce_table.add new ReduceAction337(14)
+               reduce_table.add new ReduceAction338(14)
+               reduce_table.add new ReduceAction339(14)
+               reduce_table.add new ReduceAction340(14)
+               reduce_table.add new ReduceAction341(14)
+               reduce_table.add new ReduceAction342(14)
+               reduce_table.add new ReduceAction343(14)
+               reduce_table.add new ReduceAction344(14)
+               reduce_table.add new ReduceAction345(14)
+               reduce_table.add new ReduceAction346(14)
+               reduce_table.add new ReduceAction347(14)
+               reduce_table.add new ReduceAction348(14)
+               reduce_table.add new ReduceAction349(14)
+               reduce_table.add new ReduceAction350(14)
+               reduce_table.add new ReduceAction351(14)
+               reduce_table.add new ReduceAction352(14)
+               reduce_table.add new ReduceAction353(14)
+               reduce_table.add new ReduceAction354(14)
+               reduce_table.add new ReduceAction355(14)
+               reduce_table.add new ReduceAction356(14)
+               reduce_table.add new ReduceAction357(14)
+               reduce_table.add new ReduceAction358(14)
+               reduce_table.add new ReduceAction359(14)
+               reduce_table.add new ReduceAction360(14)
+               reduce_table.add new ReduceAction361(14)
+               reduce_table.add new ReduceAction362(14)
+               reduce_table.add new ReduceAction363(14)
+               reduce_table.add new ReduceAction364(14)
+               reduce_table.add new ReduceAction365(14)
+               reduce_table.add new ReduceAction366(14)
+               reduce_table.add new ReduceAction367(14)
+               reduce_table.add new ReduceAction368(14)
+               reduce_table.add new ReduceAction369(14)
+               reduce_table.add new ReduceAction370(14)
+               reduce_table.add new ReduceAction371(14)
+               reduce_table.add new ReduceAction372(14)
+               reduce_table.add new ReduceAction373(14)
+               reduce_table.add new ReduceAction374(14)
+               reduce_table.add new ReduceAction375(14)
+               reduce_table.add new ReduceAction376(14)
+               reduce_table.add new ReduceAction377(14)
+               reduce_table.add new ReduceAction378(14)
+               reduce_table.add new ReduceAction379(14)
+               reduce_table.add new ReduceAction380(14)
+               reduce_table.add new ReduceAction381(14)
+               reduce_table.add new ReduceAction382(14)
+               reduce_table.add new ReduceAction383(14)
+               reduce_table.add new ReduceAction384(14)
+               reduce_table.add new ReduceAction385(14)
+               reduce_table.add new ReduceAction386(14)
+               reduce_table.add new ReduceAction387(14)
+               reduce_table.add new ReduceAction388(14)
+               reduce_table.add new ReduceAction389(14)
+               reduce_table.add new ReduceAction390(14)
+               reduce_table.add new ReduceAction391(14)
+               reduce_table.add new ReduceAction392(14)
+               reduce_table.add new ReduceAction393(14)
+               reduce_table.add new ReduceAction394(14)
+               reduce_table.add new ReduceAction395(14)
+               reduce_table.add new ReduceAction396(14)
+               reduce_table.add new ReduceAction397(14)
+               reduce_table.add new ReduceAction398(14)
+               reduce_table.add new ReduceAction399(14)
+               reduce_table.add new ReduceAction400(14)
+               reduce_table.add new ReduceAction400(14)
+               reduce_table.add new ReduceAction402(15)
+               reduce_table.add new ReduceAction403(15)
+               reduce_table.add new ReduceAction49(15)
+               reduce_table.add new ReduceAction402(16)
+               reduce_table.add new ReduceAction406(16)
+               reduce_table.add new ReduceAction407(17)
+               reduce_table.add new ReduceAction408(17)
+               reduce_table.add new ReduceAction409(17)
+               reduce_table.add new ReduceAction410(17)
+               reduce_table.add new ReduceAction411(17)
+               reduce_table.add new ReduceAction412(17)
+               reduce_table.add new ReduceAction413(17)
+               reduce_table.add new ReduceAction414(17)
+               reduce_table.add new ReduceAction415(17)
+               reduce_table.add new ReduceAction416(17)
+               reduce_table.add new ReduceAction417(17)
+               reduce_table.add new ReduceAction418(17)
+               reduce_table.add new ReduceAction419(17)
+               reduce_table.add new ReduceAction420(17)
+               reduce_table.add new ReduceAction421(17)
+               reduce_table.add new ReduceAction422(17)
+               reduce_table.add new ReduceAction423(17)
+               reduce_table.add new ReduceAction424(17)
+               reduce_table.add new ReduceAction425(17)
+               reduce_table.add new ReduceAction426(17)
+               reduce_table.add new ReduceAction427(17)
+               reduce_table.add new ReduceAction428(17)
+               reduce_table.add new ReduceAction429(17)
+               reduce_table.add new ReduceAction430(18)
+               reduce_table.add new ReduceAction431(18)
+               reduce_table.add new ReduceAction432(18)
+               reduce_table.add new ReduceAction433(18)
+               reduce_table.add new ReduceAction434(19)
+               reduce_table.add new ReduceAction435(19)
+               reduce_table.add new ReduceAction102(19)
+               reduce_table.add new ReduceAction437(20)
+               reduce_table.add new ReduceAction438(21)
+               reduce_table.add new ReduceAction439(21)
+               reduce_table.add new ReduceAction440(21)
+               reduce_table.add new ReduceAction441(21)
+               reduce_table.add new ReduceAction442(21)
+               reduce_table.add new ReduceAction443(22)
+               reduce_table.add new ReduceAction444(22)
+               reduce_table.add new ReduceAction49(22)
+               reduce_table.add new ReduceAction446(23)
+               reduce_table.add new ReduceAction447(24)
+               reduce_table.add new ReduceAction447(24)
+               reduce_table.add new ReduceAction449(24)
+               reduce_table.add new ReduceAction450(25)
+               reduce_table.add new ReduceAction451(25)
+               reduce_table.add new ReduceAction452(25)
+               reduce_table.add new ReduceAction453(26)
+               reduce_table.add new ReduceAction454(26)
+               reduce_table.add new ReduceAction455(26)
+               reduce_table.add new ReduceAction456(26)
+               reduce_table.add new ReduceAction457(26)
+               reduce_table.add new ReduceAction458(26)
+               reduce_table.add new ReduceAction49(27)
+               reduce_table.add new ReduceAction460(27)
+               reduce_table.add new ReduceAction461(28)
+               reduce_table.add new ReduceAction462(29)
+               reduce_table.add new ReduceAction463(29)
+               reduce_table.add new ReduceAction464(30)
+               reduce_table.add new ReduceAction49(30)
+               reduce_table.add new ReduceAction466(31)
+               reduce_table.add new ReduceAction467(32)
+               reduce_table.add new ReduceAction468(32)
+               reduce_table.add new ReduceAction468(32)
+               reduce_table.add new ReduceAction470(33)
+               reduce_table.add new ReduceAction471(33)
+               reduce_table.add new ReduceAction472(33)
+               reduce_table.add new ReduceAction473(33)
+               reduce_table.add new ReduceAction474(34)
+               reduce_table.add new ReduceAction475(34)
+               reduce_table.add new ReduceAction476(35)
+               reduce_table.add new ReduceAction476(36)
+               reduce_table.add new ReduceAction476(37)
+               reduce_table.add new ReduceAction49(37)
+               reduce_table.add new ReduceAction480(38)
+               reduce_table.add new ReduceAction481(38)
+               reduce_table.add new ReduceAction482(38)
+               reduce_table.add new ReduceAction483(38)
+               reduce_table.add new ReduceAction484(39)
+               reduce_table.add new ReduceAction485(39)
+               reduce_table.add new ReduceAction486(40)
+               reduce_table.add new ReduceAction487(40)
+               reduce_table.add new ReduceAction480(41)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction491(42)
+               reduce_table.add new ReduceAction492(42)
+               reduce_table.add new ReduceAction493(42)
+               reduce_table.add new ReduceAction494(42)
+               reduce_table.add new ReduceAction495(42)
+               reduce_table.add new ReduceAction496(42)
+               reduce_table.add new ReduceAction497(42)
+               reduce_table.add new ReduceAction498(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction483(42)
+               reduce_table.add new ReduceAction506(42)
+               reduce_table.add new ReduceAction507(42)
+               reduce_table.add new ReduceAction508(42)
+               reduce_table.add new ReduceAction509(42)
+               reduce_table.add new ReduceAction510(42)
+               reduce_table.add new ReduceAction511(42)
+               reduce_table.add new ReduceAction512(42)
+               reduce_table.add new ReduceAction513(42)
+               reduce_table.add new ReduceAction514(42)
+               reduce_table.add new ReduceAction515(42)
+               reduce_table.add new ReduceAction516(42)
+               reduce_table.add new ReduceAction517(42)
+               reduce_table.add new ReduceAction518(42)
+               reduce_table.add new ReduceAction519(42)
+               reduce_table.add new ReduceAction520(42)
+               reduce_table.add new ReduceAction521(42)
+               reduce_table.add new ReduceAction522(42)
+               reduce_table.add new ReduceAction523(42)
+               reduce_table.add new ReduceAction522(42)
+               reduce_table.add new ReduceAction525(42)
+               reduce_table.add new ReduceAction526(42)
+               reduce_table.add new ReduceAction525(42)
+               reduce_table.add new ReduceAction528(42)
+               reduce_table.add new ReduceAction529(42)
+               reduce_table.add new ReduceAction528(42)
+               reduce_table.add new ReduceAction531(42)
+               reduce_table.add new ReduceAction532(43)
+               reduce_table.add new ReduceAction533(43)
+               reduce_table.add new ReduceAction534(44)
+               reduce_table.add new ReduceAction535(44)
+               reduce_table.add new ReduceAction536(44)
+               reduce_table.add new ReduceAction537(44)
+               reduce_table.add new ReduceAction538(45)
+               reduce_table.add new ReduceAction539(45)
+               reduce_table.add new ReduceAction540(45)
+               reduce_table.add new ReduceAction541(45)
+               reduce_table.add new ReduceAction542(45)
+               reduce_table.add new ReduceAction543(45)
+               reduce_table.add new ReduceAction544(45)
+               reduce_table.add new ReduceAction545(45)
+               reduce_table.add new ReduceAction546(45)
+               reduce_table.add new ReduceAction547(45)
+               reduce_table.add new ReduceAction548(45)
+               reduce_table.add new ReduceAction549(45)
+               reduce_table.add new ReduceAction550(45)
+               reduce_table.add new ReduceAction551(45)
+               reduce_table.add new ReduceAction552(45)
+               reduce_table.add new ReduceAction553(45)
+               reduce_table.add new ReduceAction554(45)
+               reduce_table.add new ReduceAction555(45)
+               reduce_table.add new ReduceAction556(45)
+               reduce_table.add new ReduceAction557(45)
+               reduce_table.add new ReduceAction558(45)
+               reduce_table.add new ReduceAction559(45)
+               reduce_table.add new ReduceAction560(45)
+               reduce_table.add new ReduceAction561(45)
+               reduce_table.add new ReduceAction562(45)
+               reduce_table.add new ReduceAction563(45)
+               reduce_table.add new ReduceAction564(45)
+               reduce_table.add new ReduceAction565(45)
+               reduce_table.add new ReduceAction566(45)
+               reduce_table.add new ReduceAction567(45)
+               reduce_table.add new ReduceAction568(45)
+               reduce_table.add new ReduceAction569(45)
+               reduce_table.add new ReduceAction570(45)
+               reduce_table.add new ReduceAction571(45)
+               reduce_table.add new ReduceAction572(45)
+               reduce_table.add new ReduceAction573(45)
+               reduce_table.add new ReduceAction574(45)
+               reduce_table.add new ReduceAction575(45)
+               reduce_table.add new ReduceAction576(45)
+               reduce_table.add new ReduceAction577(45)
+               reduce_table.add new ReduceAction578(45)
+               reduce_table.add new ReduceAction579(45)
+               reduce_table.add new ReduceAction580(45)
+               reduce_table.add new ReduceAction581(45)
+               reduce_table.add new ReduceAction582(45)
+               reduce_table.add new ReduceAction583(45)
+               reduce_table.add new ReduceAction584(45)
+               reduce_table.add new ReduceAction585(45)
+               reduce_table.add new ReduceAction586(45)
+               reduce_table.add new ReduceAction587(45)
+               reduce_table.add new ReduceAction588(45)
+               reduce_table.add new ReduceAction589(45)
+               reduce_table.add new ReduceAction590(45)
+               reduce_table.add new ReduceAction591(45)
+               reduce_table.add new ReduceAction592(45)
+               reduce_table.add new ReduceAction593(45)
+               reduce_table.add new ReduceAction594(46)
+               reduce_table.add new ReduceAction595(46)
+               reduce_table.add new ReduceAction596(46)
+               reduce_table.add new ReduceAction597(46)
+               reduce_table.add new ReduceAction598(46)
+               reduce_table.add new ReduceAction599(46)
+               reduce_table.add new ReduceAction600(46)
+               reduce_table.add new ReduceAction601(46)
+               reduce_table.add new ReduceAction602(46)
+               reduce_table.add new ReduceAction603(46)
+               reduce_table.add new ReduceAction604(46)
+               reduce_table.add new ReduceAction605(47)
+               reduce_table.add new ReduceAction606(47)
+               reduce_table.add new ReduceAction607(47)
+               reduce_table.add new ReduceAction608(48)
+               reduce_table.add new ReduceAction609(48)
+               reduce_table.add new ReduceAction610(48)
+               reduce_table.add new ReduceAction611(48)
+               reduce_table.add new ReduceAction612(48)
+               reduce_table.add new ReduceAction613(48)
+               reduce_table.add new ReduceAction614(48)
+               reduce_table.add new ReduceAction615(48)
+               reduce_table.add new ReduceAction482(49)
+               reduce_table.add new ReduceAction617(50)
+               reduce_table.add new ReduceAction618(50)
+               reduce_table.add new ReduceAction619(51)
+               reduce_table.add new ReduceAction620(51)
+               reduce_table.add new ReduceAction621(52)
+               reduce_table.add new ReduceAction622(52)
+               reduce_table.add new ReduceAction623(53)
+               reduce_table.add new ReduceAction624(53)
+               reduce_table.add new ReduceAction625(54)
+               reduce_table.add new ReduceAction626(55)
+               reduce_table.add new ReduceAction627(55)
+               reduce_table.add new ReduceAction628(56)
+               reduce_table.add new ReduceAction629(56)
+               reduce_table.add new ReduceAction483(56)
+               reduce_table.add new ReduceAction631(57)
+               reduce_table.add new ReduceAction632(57)
+               reduce_table.add new ReduceAction633(57)
+               reduce_table.add new ReduceAction634(57)
+               reduce_table.add new ReduceAction635(58)
+               reduce_table.add new ReduceAction483(59)
+               reduce_table.add new ReduceAction637(59)
+               reduce_table.add new ReduceAction483(60)
+               reduce_table.add new ReduceAction639(60)
+               reduce_table.add new ReduceAction640(60)
+               reduce_table.add new ReduceAction641(60)
+               reduce_table.add new ReduceAction642(60)
+               reduce_table.add new ReduceAction483(61)
+               reduce_table.add new ReduceAction644(61)
+               reduce_table.add new ReduceAction483(62)
+               reduce_table.add new ReduceAction646(62)
+               reduce_table.add new ReduceAction647(62)
+               reduce_table.add new ReduceAction648(62)
+               reduce_table.add new ReduceAction649(62)
+               reduce_table.add new ReduceAction650(62)
+               reduce_table.add new ReduceAction651(62)
+               reduce_table.add new ReduceAction652(62)
+               reduce_table.add new ReduceAction653(62)
+               reduce_table.add new ReduceAction483(63)
+               reduce_table.add new ReduceAction655(63)
+               reduce_table.add new ReduceAction483(64)
+               reduce_table.add new ReduceAction657(64)
+               reduce_table.add new ReduceAction483(65)
+               reduce_table.add new ReduceAction659(65)
+               reduce_table.add new ReduceAction483(66)
+               reduce_table.add new ReduceAction661(66)
+               reduce_table.add new ReduceAction662(66)
+               reduce_table.add new ReduceAction483(67)
+               reduce_table.add new ReduceAction664(67)
+               reduce_table.add new ReduceAction665(67)
+               reduce_table.add new ReduceAction483(68)
+               reduce_table.add new ReduceAction667(68)
+               reduce_table.add new ReduceAction668(68)
+               reduce_table.add new ReduceAction669(68)
+               reduce_table.add new ReduceAction483(69)
+               reduce_table.add new ReduceAction671(69)
+               reduce_table.add new ReduceAction483(70)
+               reduce_table.add new ReduceAction673(70)
+               reduce_table.add new ReduceAction674(70)
+               reduce_table.add new ReduceAction675(70)
+               reduce_table.add new ReduceAction676(70)
+               reduce_table.add new ReduceAction483(71)
+               reduce_table.add new ReduceAction678(71)
+               reduce_table.add new ReduceAction679(71)
+               reduce_table.add new ReduceAction680(71)
+               reduce_table.add new ReduceAction681(71)
+               reduce_table.add new ReduceAction682(71)
+               reduce_table.add new ReduceAction683(71)
+               reduce_table.add new ReduceAction684(71)
+               reduce_table.add new ReduceAction685(71)
+               reduce_table.add new ReduceAction686(71)
+               reduce_table.add new ReduceAction687(71)
+               reduce_table.add new ReduceAction688(71)
+               reduce_table.add new ReduceAction689(71)
+               reduce_table.add new ReduceAction690(71)
+               reduce_table.add new ReduceAction691(71)
+               reduce_table.add new ReduceAction692(71)
+               reduce_table.add new ReduceAction693(71)
+               reduce_table.add new ReduceAction694(71)
+               reduce_table.add new ReduceAction695(71)
+               reduce_table.add new ReduceAction696(71)
+               reduce_table.add new ReduceAction697(71)
+               reduce_table.add new ReduceAction698(71)
+               reduce_table.add new ReduceAction699(71)
+               reduce_table.add new ReduceAction700(71)
+               reduce_table.add new ReduceAction701(71)
+               reduce_table.add new ReduceAction702(71)
+               reduce_table.add new ReduceAction703(71)
+               reduce_table.add new ReduceAction704(71)
+               reduce_table.add new ReduceAction705(71)
+               reduce_table.add new ReduceAction706(71)
+               reduce_table.add new ReduceAction483(72)
+               reduce_table.add new ReduceAction708(72)
+               reduce_table.add new ReduceAction709(72)
+               reduce_table.add new ReduceAction710(72)
+               reduce_table.add new ReduceAction506(72)
+               reduce_table.add new ReduceAction712(72)
+               reduce_table.add new ReduceAction507(72)
+               reduce_table.add new ReduceAction714(72)
+               reduce_table.add new ReduceAction508(72)
+               reduce_table.add new ReduceAction716(72)
+               reduce_table.add new ReduceAction509(72)
+               reduce_table.add new ReduceAction718(72)
+               reduce_table.add new ReduceAction510(72)
+               reduce_table.add new ReduceAction720(72)
+               reduce_table.add new ReduceAction511(72)
+               reduce_table.add new ReduceAction722(72)
+               reduce_table.add new ReduceAction512(72)
+               reduce_table.add new ReduceAction724(72)
+               reduce_table.add new ReduceAction513(72)
+               reduce_table.add new ReduceAction726(72)
+               reduce_table.add new ReduceAction514(72)
+               reduce_table.add new ReduceAction728(72)
+               reduce_table.add new ReduceAction515(72)
+               reduce_table.add new ReduceAction730(72)
+               reduce_table.add new ReduceAction516(72)
+               reduce_table.add new ReduceAction732(72)
+               reduce_table.add new ReduceAction517(72)
+               reduce_table.add new ReduceAction734(72)
+               reduce_table.add new ReduceAction518(72)
+               reduce_table.add new ReduceAction736(72)
+               reduce_table.add new ReduceAction519(72)
+               reduce_table.add new ReduceAction738(72)
+               reduce_table.add new ReduceAction520(72)
+               reduce_table.add new ReduceAction740(72)
+               reduce_table.add new ReduceAction521(72)
+               reduce_table.add new ReduceAction742(72)
+               reduce_table.add new ReduceAction743(72)
+               reduce_table.add new ReduceAction744(72)
+               reduce_table.add new ReduceAction745(72)
+               reduce_table.add new ReduceAction746(72)
+               reduce_table.add new ReduceAction747(72)
+               reduce_table.add new ReduceAction748(72)
+               reduce_table.add new ReduceAction749(72)
+               reduce_table.add new ReduceAction750(72)
+               reduce_table.add new ReduceAction751(72)
+               reduce_table.add new ReduceAction752(72)
+               reduce_table.add new ReduceAction753(72)
+               reduce_table.add new ReduceAction754(72)
+               reduce_table.add new ReduceAction483(73)
+               reduce_table.add new ReduceAction756(73)
+               reduce_table.add new ReduceAction757(73)
+               reduce_table.add new ReduceAction758(74)
+               reduce_table.add new ReduceAction759(74)
+               reduce_table.add new ReduceAction760(74)
+               reduce_table.add new ReduceAction761(74)
+               reduce_table.add new ReduceAction762(74)
+               reduce_table.add new ReduceAction763(74)
+               reduce_table.add new ReduceAction764(74)
+               reduce_table.add new ReduceAction765(74)
+               reduce_table.add new ReduceAction483(74)
+               reduce_table.add new ReduceAction767(74)
+               reduce_table.add new ReduceAction768(74)
+               reduce_table.add new ReduceAction769(74)
+               reduce_table.add new ReduceAction483(74)
+               reduce_table.add new ReduceAction771(74)
+               reduce_table.add new ReduceAction772(74)
+               reduce_table.add new ReduceAction773(74)
+               reduce_table.add new ReduceAction774(75)
+               reduce_table.add new ReduceAction774(75)
+               reduce_table.add new ReduceAction776(76)
+               reduce_table.add new ReduceAction777(77)
+               reduce_table.add new ReduceAction778(78)
+               reduce_table.add new ReduceAction779(78)
+               reduce_table.add new ReduceAction777(79)
+               reduce_table.add new ReduceAction781(80)
+               reduce_table.add new ReduceAction622(80)
+               reduce_table.add new ReduceAction783(80)
+               reduce_table.add new ReduceAction784(81)
+               reduce_table.add new ReduceAction785(81)
+               reduce_table.add new ReduceAction786(82)
+               reduce_table.add new ReduceAction787(82)
+               reduce_table.add new ReduceAction788(83)
+               reduce_table.add new ReduceAction786(84)
+               reduce_table.add new ReduceAction787(84)
+               reduce_table.add new ReduceAction791(85)
+               reduce_table.add new ReduceAction792(86)
+               reduce_table.add new ReduceAction793(87)
+               reduce_table.add new ReduceAction794(87)
+               reduce_table.add new ReduceAction795(88)
+               reduce_table.add new ReduceAction49(88)
+               reduce_table.add new ReduceAction797(89)
+               reduce_table.add new ReduceAction798(89)
+               reduce_table.add new ReduceAction799(89)
+               reduce_table.add new ReduceAction800(89)
+               reduce_table.add new ReduceAction801(89)
+               reduce_table.add new ReduceAction802(89)
+               reduce_table.add new ReduceAction803(89)
+               reduce_table.add new ReduceAction804(89)
+               reduce_table.add new ReduceAction805(89)
+               reduce_table.add new ReduceAction806(89)
+               reduce_table.add new ReduceAction807(89)
+               reduce_table.add new ReduceAction808(89)
+               reduce_table.add new ReduceAction809(89)
+               reduce_table.add new ReduceAction810(89)
+               reduce_table.add new ReduceAction811(89)
+               reduce_table.add new ReduceAction812(89)
+               reduce_table.add new ReduceAction813(89)
+               reduce_table.add new ReduceAction814(89)
+               reduce_table.add new ReduceAction815(89)
+               reduce_table.add new ReduceAction816(89)
+               reduce_table.add new ReduceAction817(90)
+               reduce_table.add new ReduceAction818(90)
+               reduce_table.add new ReduceAction797(91)
+               reduce_table.add new ReduceAction798(91)
+               reduce_table.add new ReduceAction799(91)
+               reduce_table.add new ReduceAction800(91)
+               reduce_table.add new ReduceAction801(91)
+               reduce_table.add new ReduceAction802(91)
+               reduce_table.add new ReduceAction803(91)
+               reduce_table.add new ReduceAction804(91)
+               reduce_table.add new ReduceAction805(91)
+               reduce_table.add new ReduceAction806(91)
+               reduce_table.add new ReduceAction807(91)
+               reduce_table.add new ReduceAction808(91)
+               reduce_table.add new ReduceAction809(91)
+               reduce_table.add new ReduceAction810(91)
+               reduce_table.add new ReduceAction811(91)
+               reduce_table.add new ReduceAction812(91)
+               reduce_table.add new ReduceAction813(91)
+               reduce_table.add new ReduceAction814(91)
+               reduce_table.add new ReduceAction815(91)
+               reduce_table.add new ReduceAction816(91)
+               reduce_table.add new ReduceAction839(91)
+               reduce_table.add new ReduceAction840(91)
+               reduce_table.add new ReduceAction841(91)
+               reduce_table.add new ReduceAction842(91)
+               reduce_table.add new ReduceAction843(91)
+               reduce_table.add new ReduceAction844(91)
+               reduce_table.add new ReduceAction845(91)
+               reduce_table.add new ReduceAction846(91)
+               reduce_table.add new ReduceAction847(91)
+               reduce_table.add new ReduceAction848(91)
+               reduce_table.add new ReduceAction483(92)
+               reduce_table.add new ReduceAction850(93)
+               reduce_table.add new ReduceAction851(94)
+               reduce_table.add new ReduceAction852(94)
+               reduce_table.add new ReduceAction853(94)
+               reduce_table.add new ReduceAction854(94)
+               reduce_table.add new ReduceAction855(94)
+               reduce_table.add new ReduceAction856(94)
+               reduce_table.add new ReduceAction857(94)
+               reduce_table.add new ReduceAction858(94)
+               reduce_table.add new ReduceAction859(94)
+               reduce_table.add new ReduceAction860(94)
+               reduce_table.add new ReduceAction861(94)
+               reduce_table.add new ReduceAction862(94)
+               reduce_table.add new ReduceAction863(94)
+               reduce_table.add new ReduceAction864(94)
+               reduce_table.add new ReduceAction865(94)
+               reduce_table.add new ReduceAction866(94)
+               reduce_table.add new ReduceAction867(94)
+               reduce_table.add new ReduceAction868(94)
+               reduce_table.add new ReduceAction869(94)
+               reduce_table.add new ReduceAction870(94)
+               reduce_table.add new ReduceAction871(94)
+               reduce_table.add new ReduceAction872(94)
+               reduce_table.add new ReduceAction873(94)
+               reduce_table.add new ReduceAction874(94)
+               reduce_table.add new ReduceAction875(94)
+               reduce_table.add new ReduceAction876(94)
+               reduce_table.add new ReduceAction877(94)
+               reduce_table.add new ReduceAction878(94)
+               reduce_table.add new ReduceAction879(94)
+               reduce_table.add new ReduceAction880(94)
+               reduce_table.add new ReduceAction881(94)
+               reduce_table.add new ReduceAction882(94)
+               reduce_table.add new ReduceAction883(94)
+               reduce_table.add new ReduceAction884(94)
+               reduce_table.add new ReduceAction885(94)
+               reduce_table.add new ReduceAction886(94)
+               reduce_table.add new ReduceAction887(94)
+               reduce_table.add new ReduceAction888(94)
+               reduce_table.add new ReduceAction889(94)
+               reduce_table.add new ReduceAction890(94)
+               reduce_table.add new ReduceAction891(94)
+               reduce_table.add new ReduceAction892(94)
+               reduce_table.add new ReduceAction893(94)
+               reduce_table.add new ReduceAction894(94)
+               reduce_table.add new ReduceAction895(94)
+               reduce_table.add new ReduceAction896(94)
+               reduce_table.add new ReduceAction897(94)
+               reduce_table.add new ReduceAction898(94)
+               reduce_table.add new ReduceAction899(94)
+               reduce_table.add new ReduceAction900(94)
+               reduce_table.add new ReduceAction901(95)
+               reduce_table.add new ReduceAction902(95)
+               reduce_table.add new ReduceAction903(95)
+               reduce_table.add new ReduceAction904(95)
+               reduce_table.add new ReduceAction905(95)
+               reduce_table.add new ReduceAction778(96)
+               reduce_table.add new ReduceAction779(96)
+               reduce_table.add new ReduceAction777(97)
+               reduce_table.add new ReduceAction909(98)
+               reduce_table.add new ReduceAction483(98)
+               reduce_table.add new ReduceAction483(98)
+               reduce_table.add new ReduceAction912(98)
+               reduce_table.add new ReduceAction913(98)
+               reduce_table.add new ReduceAction914(98)
+               reduce_table.add new ReduceAction915(98)
+               reduce_table.add new ReduceAction916(99)
+               reduce_table.add new ReduceAction917(99)
+               reduce_table.add new ReduceAction918(99)
+               reduce_table.add new ReduceAction919(100)
+               reduce_table.add new ReduceAction920(100)
+               reduce_table.add new ReduceAction919(101)
+               reduce_table.add new ReduceAction922(101)
+               reduce_table.add new ReduceAction920(101)
+               reduce_table.add new ReduceAction924(101)
+               reduce_table.add new ReduceAction925(102)
+               reduce_table.add new ReduceAction787(103)
+               reduce_table.add new ReduceAction927(103)
+               reduce_table.add new ReduceAction928(104)
+               reduce_table.add new ReduceAction929(105)
+               reduce_table.add new ReduceAction930(105)
+               reduce_table.add new ReduceAction931(106)
+               reduce_table.add new ReduceAction932(106)
+               reduce_table.add new ReduceAction933(107)
+               reduce_table.add new ReduceAction934(107)
+               reduce_table.add new ReduceAction935(107)
+               reduce_table.add new ReduceAction936(107)
+               reduce_table.add new ReduceAction937(108)
+               reduce_table.add new ReduceAction938(108)
+               reduce_table.add new ReduceAction939(108)
+               reduce_table.add new ReduceAction49(108)
+               reduce_table.add new ReduceAction941(109)
+               reduce_table.add new ReduceAction942(109)
+               reduce_table.add new ReduceAction943(109)
+               reduce_table.add new ReduceAction944(109)
+               reduce_table.add new ReduceAction945(110)
+               reduce_table.add new ReduceAction946(110)
+               reduce_table.add new ReduceAction947(110)
+               reduce_table.add new ReduceAction946(110)
+               reduce_table.add new ReduceAction949(111)
+               reduce_table.add new ReduceAction950(112)
+               reduce_table.add new ReduceAction49(113)
+               reduce_table.add new ReduceAction952(113)
+               reduce_table.add new ReduceAction953(114)
+               reduce_table.add new ReduceAction953(114)
+               reduce_table.add new ReduceAction953(114)
+               reduce_table.add new ReduceAction956(115)
+               reduce_table.add new ReduceAction957(115)
+               reduce_table.add new ReduceAction50(115)
+               reduce_table.add new ReduceAction50(115)
+               reduce_table.add new ReduceAction960(115)
+               reduce_table.add new ReduceAction960(115)
+               reduce_table.add new ReduceAction962(115)
+               reduce_table.add new ReduceAction963(115)
+               reduce_table.add new ReduceAction964(115)
+               reduce_table.add new ReduceAction964(115)
+               reduce_table.add new ReduceAction966(115)
+               reduce_table.add new ReduceAction49(116)
+               reduce_table.add new ReduceAction968(116)
+               reduce_table.add new ReduceAction969(117)
+               reduce_table.add new ReduceAction953(117)
+               reduce_table.add new ReduceAction953(118)
+               reduce_table.add new ReduceAction972(118)
+               reduce_table.add new ReduceAction120(119)
+               reduce_table.add new ReduceAction121(119)
+               reduce_table.add new ReduceAction122(119)
+               reduce_table.add new ReduceAction123(119)
+               reduce_table.add new ReduceAction124(119)
+               reduce_table.add new ReduceAction125(119)
+               reduce_table.add new ReduceAction126(119)
+               reduce_table.add new ReduceAction127(119)
+               reduce_table.add new ReduceAction128(119)
+               reduce_table.add new ReduceAction129(119)
+               reduce_table.add new ReduceAction130(119)
+               reduce_table.add new ReduceAction131(119)
+               reduce_table.add new ReduceAction132(119)
+               reduce_table.add new ReduceAction133(119)
+               reduce_table.add new ReduceAction134(119)
+               reduce_table.add new ReduceAction135(119)
+               reduce_table.add new ReduceAction136(119)
+               reduce_table.add new ReduceAction137(119)
+               reduce_table.add new ReduceAction138(119)
+               reduce_table.add new ReduceAction139(119)
+               reduce_table.add new ReduceAction140(119)
+               reduce_table.add new ReduceAction141(119)
+               reduce_table.add new ReduceAction142(119)
+               reduce_table.add new ReduceAction143(119)
+               reduce_table.add new ReduceAction144(119)
+               reduce_table.add new ReduceAction145(119)
+               reduce_table.add new ReduceAction146(119)
+               reduce_table.add new ReduceAction147(119)
+               reduce_table.add new ReduceAction148(119)
+               reduce_table.add new ReduceAction149(119)
+               reduce_table.add new ReduceAction230(119)
+               reduce_table.add new ReduceAction231(119)
+               reduce_table.add new ReduceAction232(119)
+               reduce_table.add new ReduceAction233(119)
+               reduce_table.add new ReduceAction234(119)
+               reduce_table.add new ReduceAction235(119)
+               reduce_table.add new ReduceAction236(119)
+               reduce_table.add new ReduceAction237(119)
+               reduce_table.add new ReduceAction238(119)
+               reduce_table.add new ReduceAction239(119)
+               reduce_table.add new ReduceAction240(119)
+               reduce_table.add new ReduceAction241(119)
+               reduce_table.add new ReduceAction242(119)
+               reduce_table.add new ReduceAction243(119)
+               reduce_table.add new ReduceAction244(119)
+               reduce_table.add new ReduceAction245(119)
+               reduce_table.add new ReduceAction246(119)
+               reduce_table.add new ReduceAction247(119)
+               reduce_table.add new ReduceAction248(119)
+               reduce_table.add new ReduceAction249(119)
+               reduce_table.add new ReduceAction402(120)
+               reduce_table.add new ReduceAction403(120)
+               reduce_table.add new ReduceAction407(121)
+               reduce_table.add new ReduceAction408(121)
+               reduce_table.add new ReduceAction409(121)
+               reduce_table.add new ReduceAction410(121)
+               reduce_table.add new ReduceAction411(121)
+               reduce_table.add new ReduceAction412(121)
+               reduce_table.add new ReduceAction413(121)
+               reduce_table.add new ReduceAction414(121)
+               reduce_table.add new ReduceAction415(121)
+               reduce_table.add new ReduceAction416(121)
+               reduce_table.add new ReduceAction417(121)
+               reduce_table.add new ReduceAction418(121)
+               reduce_table.add new ReduceAction419(121)
+               reduce_table.add new ReduceAction420(121)
+               reduce_table.add new ReduceAction421(121)
+               reduce_table.add new ReduceAction422(121)
+               reduce_table.add new ReduceAction423(121)
+               reduce_table.add new ReduceAction424(121)
+               reduce_table.add new ReduceAction425(121)
+               reduce_table.add new ReduceAction426(121)
+               reduce_table.add new ReduceAction427(121)
+               reduce_table.add new ReduceAction428(121)
+               reduce_table.add new ReduceAction945(122)
+               reduce_table.add new ReduceAction946(122)
+               reduce_table.add new ReduceAction947(122)
+               reduce_table.add new ReduceAction946(122)
+               reduce_table.add new ReduceAction467(123)
+               reduce_table.add new ReduceAction468(123)
+               reduce_table.add new ReduceAction468(123)
+               reduce_table.add new ReduceAction470(124)
+               reduce_table.add new ReduceAction471(124)
+               reduce_table.add new ReduceAction483(125)
+               reduce_table.add new ReduceAction637(125)
+               reduce_table.add new ReduceAction483(126)
+               reduce_table.add new ReduceAction639(126)
+               reduce_table.add new ReduceAction640(126)
+               reduce_table.add new ReduceAction641(126)
+               reduce_table.add new ReduceAction642(126)
+               reduce_table.add new ReduceAction483(127)
+               reduce_table.add new ReduceAction644(127)
+               reduce_table.add new ReduceAction483(128)
+               reduce_table.add new ReduceAction646(128)
+               reduce_table.add new ReduceAction647(128)
+               reduce_table.add new ReduceAction648(128)
+               reduce_table.add new ReduceAction649(128)
+               reduce_table.add new ReduceAction650(128)
+               reduce_table.add new ReduceAction651(128)
+               reduce_table.add new ReduceAction652(128)
+               reduce_table.add new ReduceAction653(128)
+               reduce_table.add new ReduceAction483(129)
+               reduce_table.add new ReduceAction655(129)
+               reduce_table.add new ReduceAction483(130)
+               reduce_table.add new ReduceAction657(130)
+               reduce_table.add new ReduceAction483(131)
+               reduce_table.add new ReduceAction659(131)
+               reduce_table.add new ReduceAction483(132)
+               reduce_table.add new ReduceAction661(132)
+               reduce_table.add new ReduceAction662(132)
+               reduce_table.add new ReduceAction483(133)
+               reduce_table.add new ReduceAction664(133)
+               reduce_table.add new ReduceAction665(133)
+               reduce_table.add new ReduceAction483(134)
+               reduce_table.add new ReduceAction667(134)
+               reduce_table.add new ReduceAction668(134)
+               reduce_table.add new ReduceAction669(134)
+               reduce_table.add new ReduceAction483(135)
+               reduce_table.add new ReduceAction671(135)
+               reduce_table.add new ReduceAction483(136)
+               reduce_table.add new ReduceAction673(136)
+               reduce_table.add new ReduceAction674(136)
+               reduce_table.add new ReduceAction675(136)
+               reduce_table.add new ReduceAction676(136)
+               reduce_table.add new ReduceAction483(137)
+               reduce_table.add new ReduceAction678(137)
+               reduce_table.add new ReduceAction679(137)
+               reduce_table.add new ReduceAction680(137)
+               reduce_table.add new ReduceAction681(137)
+               reduce_table.add new ReduceAction682(137)
+               reduce_table.add new ReduceAction683(137)
+               reduce_table.add new ReduceAction691(137)
+               reduce_table.add new ReduceAction699(137)
+               reduce_table.add new ReduceAction684(137)
+               reduce_table.add new ReduceAction692(137)
+               reduce_table.add new ReduceAction700(137)
+               reduce_table.add new ReduceAction685(137)
+               reduce_table.add new ReduceAction693(137)
+               reduce_table.add new ReduceAction701(137)
+               reduce_table.add new ReduceAction686(137)
+               reduce_table.add new ReduceAction694(137)
+               reduce_table.add new ReduceAction702(137)
+               reduce_table.add new ReduceAction687(137)
+               reduce_table.add new ReduceAction695(137)
+               reduce_table.add new ReduceAction703(137)
+               reduce_table.add new ReduceAction688(137)
+               reduce_table.add new ReduceAction696(137)
+               reduce_table.add new ReduceAction704(137)
+               reduce_table.add new ReduceAction689(137)
+               reduce_table.add new ReduceAction697(137)
+               reduce_table.add new ReduceAction705(137)
+               reduce_table.add new ReduceAction690(137)
+               reduce_table.add new ReduceAction698(137)
+               reduce_table.add new ReduceAction706(137)
+               reduce_table.add new ReduceAction483(138)
+               reduce_table.add new ReduceAction708(138)
+               reduce_table.add new ReduceAction709(138)
+               reduce_table.add new ReduceAction710(138)
+               reduce_table.add new ReduceAction506(138)
+               reduce_table.add new ReduceAction510(138)
+               reduce_table.add new ReduceAction514(138)
+               reduce_table.add new ReduceAction712(138)
+               reduce_table.add new ReduceAction720(138)
+               reduce_table.add new ReduceAction728(138)
+               reduce_table.add new ReduceAction507(138)
+               reduce_table.add new ReduceAction511(138)
+               reduce_table.add new ReduceAction515(138)
+               reduce_table.add new ReduceAction714(138)
+               reduce_table.add new ReduceAction722(138)
+               reduce_table.add new ReduceAction730(138)
+               reduce_table.add new ReduceAction508(138)
+               reduce_table.add new ReduceAction512(138)
+               reduce_table.add new ReduceAction516(138)
+               reduce_table.add new ReduceAction716(138)
+               reduce_table.add new ReduceAction724(138)
+               reduce_table.add new ReduceAction732(138)
+               reduce_table.add new ReduceAction509(138)
+               reduce_table.add new ReduceAction513(138)
+               reduce_table.add new ReduceAction517(138)
+               reduce_table.add new ReduceAction718(138)
+               reduce_table.add new ReduceAction726(138)
+               reduce_table.add new ReduceAction734(138)
+               reduce_table.add new ReduceAction518(138)
+               reduce_table.add new ReduceAction736(138)
+               reduce_table.add new ReduceAction519(138)
+               reduce_table.add new ReduceAction520(138)
+               reduce_table.add new ReduceAction521(138)
+               reduce_table.add new ReduceAction738(138)
+               reduce_table.add new ReduceAction740(138)
+               reduce_table.add new ReduceAction742(138)
+               reduce_table.add new ReduceAction744(138)
+               reduce_table.add new ReduceAction745(138)
+               reduce_table.add new ReduceAction746(138)
+               reduce_table.add new ReduceAction747(138)
+               reduce_table.add new ReduceAction748(138)
+               reduce_table.add new ReduceAction749(138)
+               reduce_table.add new ReduceAction750(138)
+               reduce_table.add new ReduceAction751(138)
+               reduce_table.add new ReduceAction752(138)
+               reduce_table.add new ReduceAction753(138)
+               reduce_table.add new ReduceAction754(138)
+               reduce_table.add new ReduceAction483(139)
+               reduce_table.add new ReduceAction756(139)
+               reduce_table.add new ReduceAction757(139)
+               reduce_table.add new ReduceAction758(140)
+               reduce_table.add new ReduceAction759(140)
+               reduce_table.add new ReduceAction760(140)
+               reduce_table.add new ReduceAction761(140)
+               reduce_table.add new ReduceAction762(140)
+               reduce_table.add new ReduceAction763(140)
+               reduce_table.add new ReduceAction764(140)
+               reduce_table.add new ReduceAction765(140)
+               reduce_table.add new ReduceAction483(140)
+               reduce_table.add new ReduceAction767(140)
+               reduce_table.add new ReduceAction768(140)
+               reduce_table.add new ReduceAction769(140)
+               reduce_table.add new ReduceAction483(140)
+               reduce_table.add new ReduceAction467(141)
+               reduce_table.add new ReduceAction468(141)
+               reduce_table.add new ReduceAction468(141)
+               reduce_table.add new ReduceAction470(142)
+               reduce_table.add new ReduceAction471(142)
+               reduce_table.add new ReduceAction472(142)
+               reduce_table.add new ReduceAction473(142)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction491(143)
+               reduce_table.add new ReduceAction492(143)
+               reduce_table.add new ReduceAction493(143)
+               reduce_table.add new ReduceAction494(143)
+               reduce_table.add new ReduceAction495(143)
+               reduce_table.add new ReduceAction496(143)
+               reduce_table.add new ReduceAction497(143)
+               reduce_table.add new ReduceAction498(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction483(143)
+               reduce_table.add new ReduceAction506(143)
+               reduce_table.add new ReduceAction507(143)
+               reduce_table.add new ReduceAction508(143)
+               reduce_table.add new ReduceAction509(143)
+               reduce_table.add new ReduceAction510(143)
+               reduce_table.add new ReduceAction511(143)
+               reduce_table.add new ReduceAction512(143)
+               reduce_table.add new ReduceAction513(143)
+               reduce_table.add new ReduceAction514(143)
+               reduce_table.add new ReduceAction515(143)
+               reduce_table.add new ReduceAction516(143)
+               reduce_table.add new ReduceAction517(143)
+               reduce_table.add new ReduceAction518(143)
+               reduce_table.add new ReduceAction519(143)
+               reduce_table.add new ReduceAction520(143)
+               reduce_table.add new ReduceAction521(143)
+               reduce_table.add new ReduceAction522(143)
+               reduce_table.add new ReduceAction523(143)
+               reduce_table.add new ReduceAction522(143)
+               reduce_table.add new ReduceAction525(143)
+               reduce_table.add new ReduceAction526(143)
+               reduce_table.add new ReduceAction525(143)
+               reduce_table.add new ReduceAction528(143)
+               reduce_table.add new ReduceAction529(143)
+               reduce_table.add new ReduceAction528(143)
+               reduce_table.add new ReduceAction531(143)
+               reduce_table.add new ReduceAction538(144)
+               reduce_table.add new ReduceAction539(144)
+               reduce_table.add new ReduceAction540(144)
+               reduce_table.add new ReduceAction541(144)
+               reduce_table.add new ReduceAction542(144)
+               reduce_table.add new ReduceAction543(144)
+               reduce_table.add new ReduceAction544(144)
+               reduce_table.add new ReduceAction545(144)
+               reduce_table.add new ReduceAction546(144)
+               reduce_table.add new ReduceAction547(144)
+               reduce_table.add new ReduceAction548(144)
+               reduce_table.add new ReduceAction549(144)
+               reduce_table.add new ReduceAction550(144)
+               reduce_table.add new ReduceAction551(144)
+               reduce_table.add new ReduceAction552(144)
+               reduce_table.add new ReduceAction553(144)
+               reduce_table.add new ReduceAction554(144)
+               reduce_table.add new ReduceAction555(144)
+               reduce_table.add new ReduceAction556(144)
+               reduce_table.add new ReduceAction557(144)
+               reduce_table.add new ReduceAction558(144)
+               reduce_table.add new ReduceAction559(144)
+               reduce_table.add new ReduceAction560(144)
+               reduce_table.add new ReduceAction561(144)
+               reduce_table.add new ReduceAction562(144)
+               reduce_table.add new ReduceAction563(144)
+               reduce_table.add new ReduceAction564(144)
+               reduce_table.add new ReduceAction565(144)
+               reduce_table.add new ReduceAction566(144)
+               reduce_table.add new ReduceAction567(144)
+               reduce_table.add new ReduceAction568(144)
+               reduce_table.add new ReduceAction569(144)
+               reduce_table.add new ReduceAction570(144)
+               reduce_table.add new ReduceAction571(144)
+               reduce_table.add new ReduceAction572(144)
+               reduce_table.add new ReduceAction573(144)
+               reduce_table.add new ReduceAction574(144)
+               reduce_table.add new ReduceAction575(144)
+               reduce_table.add new ReduceAction576(144)
+               reduce_table.add new ReduceAction577(144)
+               reduce_table.add new ReduceAction578(144)
+               reduce_table.add new ReduceAction579(144)
+               reduce_table.add new ReduceAction580(144)
+               reduce_table.add new ReduceAction581(144)
+               reduce_table.add new ReduceAction582(144)
+               reduce_table.add new ReduceAction583(144)
+               reduce_table.add new ReduceAction584(144)
+               reduce_table.add new ReduceAction585(144)
+               reduce_table.add new ReduceAction586(144)
+               reduce_table.add new ReduceAction587(144)
+               reduce_table.add new ReduceAction588(144)
+               reduce_table.add new ReduceAction589(144)
+               reduce_table.add new ReduceAction590(144)
+               reduce_table.add new ReduceAction591(144)
+               reduce_table.add new ReduceAction592(144)
+               reduce_table.add new ReduceAction593(144)
+               reduce_table.add new ReduceAction483(145)
+               reduce_table.add new ReduceAction637(145)
+               reduce_table.add new ReduceAction483(146)
+               reduce_table.add new ReduceAction639(146)
+               reduce_table.add new ReduceAction640(146)
+               reduce_table.add new ReduceAction641(146)
+               reduce_table.add new ReduceAction642(146)
+               reduce_table.add new ReduceAction483(147)
+               reduce_table.add new ReduceAction644(147)
+               reduce_table.add new ReduceAction483(148)
+               reduce_table.add new ReduceAction646(148)
+               reduce_table.add new ReduceAction647(148)
+               reduce_table.add new ReduceAction648(148)
+               reduce_table.add new ReduceAction649(148)
+               reduce_table.add new ReduceAction650(148)
+               reduce_table.add new ReduceAction651(148)
+               reduce_table.add new ReduceAction652(148)
+               reduce_table.add new ReduceAction653(148)
+               reduce_table.add new ReduceAction483(149)
+               reduce_table.add new ReduceAction655(149)
+               reduce_table.add new ReduceAction483(150)
+               reduce_table.add new ReduceAction657(150)
+               reduce_table.add new ReduceAction483(151)
+               reduce_table.add new ReduceAction659(151)
+               reduce_table.add new ReduceAction483(152)
+               reduce_table.add new ReduceAction661(152)
+               reduce_table.add new ReduceAction662(152)
+               reduce_table.add new ReduceAction483(153)
+               reduce_table.add new ReduceAction664(153)
+               reduce_table.add new ReduceAction665(153)
+               reduce_table.add new ReduceAction483(154)
+               reduce_table.add new ReduceAction667(154)
+               reduce_table.add new ReduceAction668(154)
+               reduce_table.add new ReduceAction669(154)
+               reduce_table.add new ReduceAction483(155)
+               reduce_table.add new ReduceAction671(155)
+               reduce_table.add new ReduceAction483(156)
+               reduce_table.add new ReduceAction673(156)
+               reduce_table.add new ReduceAction674(156)
+               reduce_table.add new ReduceAction675(156)
+               reduce_table.add new ReduceAction676(156)
+               reduce_table.add new ReduceAction483(157)
+               reduce_table.add new ReduceAction678(157)
+               reduce_table.add new ReduceAction679(157)
+               reduce_table.add new ReduceAction680(157)
+               reduce_table.add new ReduceAction681(157)
+               reduce_table.add new ReduceAction682(157)
+               reduce_table.add new ReduceAction683(157)
+               reduce_table.add new ReduceAction684(157)
+               reduce_table.add new ReduceAction685(157)
+               reduce_table.add new ReduceAction686(157)
+               reduce_table.add new ReduceAction687(157)
+               reduce_table.add new ReduceAction688(157)
+               reduce_table.add new ReduceAction689(157)
+               reduce_table.add new ReduceAction690(157)
+               reduce_table.add new ReduceAction691(157)
+               reduce_table.add new ReduceAction692(157)
+               reduce_table.add new ReduceAction693(157)
+               reduce_table.add new ReduceAction694(157)
+               reduce_table.add new ReduceAction695(157)
+               reduce_table.add new ReduceAction696(157)
+               reduce_table.add new ReduceAction697(157)
+               reduce_table.add new ReduceAction698(157)
+               reduce_table.add new ReduceAction699(157)
+               reduce_table.add new ReduceAction700(157)
+               reduce_table.add new ReduceAction701(157)
+               reduce_table.add new ReduceAction702(157)
+               reduce_table.add new ReduceAction703(157)
+               reduce_table.add new ReduceAction704(157)
+               reduce_table.add new ReduceAction705(157)
+               reduce_table.add new ReduceAction706(157)
+               reduce_table.add new ReduceAction483(158)
+               reduce_table.add new ReduceAction708(158)
+               reduce_table.add new ReduceAction709(158)
+               reduce_table.add new ReduceAction710(158)
+               reduce_table.add new ReduceAction506(158)
+               reduce_table.add new ReduceAction712(158)
+               reduce_table.add new ReduceAction507(158)
+               reduce_table.add new ReduceAction714(158)
+               reduce_table.add new ReduceAction508(158)
+               reduce_table.add new ReduceAction716(158)
+               reduce_table.add new ReduceAction509(158)
+               reduce_table.add new ReduceAction718(158)
+               reduce_table.add new ReduceAction510(158)
+               reduce_table.add new ReduceAction720(158)
+               reduce_table.add new ReduceAction511(158)
+               reduce_table.add new ReduceAction722(158)
+               reduce_table.add new ReduceAction512(158)
+               reduce_table.add new ReduceAction724(158)
+               reduce_table.add new ReduceAction513(158)
+               reduce_table.add new ReduceAction726(158)
+               reduce_table.add new ReduceAction514(158)
+               reduce_table.add new ReduceAction728(158)
+               reduce_table.add new ReduceAction515(158)
+               reduce_table.add new ReduceAction730(158)
+               reduce_table.add new ReduceAction516(158)
+               reduce_table.add new ReduceAction732(158)
+               reduce_table.add new ReduceAction517(158)
+               reduce_table.add new ReduceAction734(158)
+               reduce_table.add new ReduceAction518(158)
+               reduce_table.add new ReduceAction736(158)
+               reduce_table.add new ReduceAction519(158)
+               reduce_table.add new ReduceAction738(158)
+               reduce_table.add new ReduceAction520(158)
+               reduce_table.add new ReduceAction740(158)
+               reduce_table.add new ReduceAction521(158)
+               reduce_table.add new ReduceAction742(158)
+               reduce_table.add new ReduceAction743(158)
+               reduce_table.add new ReduceAction744(158)
+               reduce_table.add new ReduceAction745(158)
+               reduce_table.add new ReduceAction746(158)
+               reduce_table.add new ReduceAction747(158)
+               reduce_table.add new ReduceAction748(158)
+               reduce_table.add new ReduceAction749(158)
+               reduce_table.add new ReduceAction750(158)
+               reduce_table.add new ReduceAction751(158)
+               reduce_table.add new ReduceAction752(158)
+               reduce_table.add new ReduceAction753(158)
+               reduce_table.add new ReduceAction754(158)
+               reduce_table.add new ReduceAction483(159)
+               reduce_table.add new ReduceAction756(159)
+               reduce_table.add new ReduceAction757(159)
+               reduce_table.add new ReduceAction758(160)
+               reduce_table.add new ReduceAction759(160)
+               reduce_table.add new ReduceAction760(160)
+               reduce_table.add new ReduceAction761(160)
+               reduce_table.add new ReduceAction762(160)
+               reduce_table.add new ReduceAction763(160)
+               reduce_table.add new ReduceAction764(160)
+               reduce_table.add new ReduceAction765(160)
+               reduce_table.add new ReduceAction483(160)
+               reduce_table.add new ReduceAction767(160)
+               reduce_table.add new ReduceAction768(160)
+               reduce_table.add new ReduceAction769(160)
+               reduce_table.add new ReduceAction793(161)
+               reduce_table.add new ReduceAction794(161)
+               reduce_table.add new ReduceAction795(162)
+               reduce_table.add new ReduceAction49(162)
+               reduce_table.add new ReduceAction797(163)
+               reduce_table.add new ReduceAction798(163)
+               reduce_table.add new ReduceAction799(163)
+               reduce_table.add new ReduceAction800(163)
+               reduce_table.add new ReduceAction801(163)
+               reduce_table.add new ReduceAction802(163)
+               reduce_table.add new ReduceAction803(163)
+               reduce_table.add new ReduceAction804(163)
+               reduce_table.add new ReduceAction805(163)
+               reduce_table.add new ReduceAction806(163)
+               reduce_table.add new ReduceAction797(164)
+               reduce_table.add new ReduceAction798(164)
+               reduce_table.add new ReduceAction799(164)
+               reduce_table.add new ReduceAction800(164)
+               reduce_table.add new ReduceAction801(164)
+               reduce_table.add new ReduceAction802(164)
+               reduce_table.add new ReduceAction803(164)
+               reduce_table.add new ReduceAction804(164)
+               reduce_table.add new ReduceAction805(164)
+               reduce_table.add new ReduceAction806(164)
+               reduce_table.add new ReduceAction778(165)
+               reduce_table.add new ReduceAction779(165)
+               reduce_table.add new ReduceAction909(166)
+               reduce_table.add new ReduceAction483(166)
+               reduce_table.add new ReduceAction483(166)
+               reduce_table.add new ReduceAction912(166)
+               reduce_table.add new ReduceAction913(166)
+               reduce_table.add new ReduceAction914(166)
+               reduce_table.add new ReduceAction467(167)
+               reduce_table.add new ReduceAction468(167)
+               reduce_table.add new ReduceAction468(167)
+               reduce_table.add new ReduceAction470(168)
+               reduce_table.add new ReduceAction471(168)
+               reduce_table.add new ReduceAction483(169)
+               reduce_table.add new ReduceAction637(169)
+               reduce_table.add new ReduceAction483(170)
+               reduce_table.add new ReduceAction639(170)
+               reduce_table.add new ReduceAction640(170)
+               reduce_table.add new ReduceAction641(170)
+               reduce_table.add new ReduceAction642(170)
+               reduce_table.add new ReduceAction483(171)
+               reduce_table.add new ReduceAction644(171)
+               reduce_table.add new ReduceAction483(172)
+               reduce_table.add new ReduceAction646(172)
+               reduce_table.add new ReduceAction647(172)
+               reduce_table.add new ReduceAction648(172)
+               reduce_table.add new ReduceAction649(172)
+               reduce_table.add new ReduceAction650(172)
+               reduce_table.add new ReduceAction651(172)
+               reduce_table.add new ReduceAction652(172)
+               reduce_table.add new ReduceAction653(172)
+               reduce_table.add new ReduceAction483(173)
+               reduce_table.add new ReduceAction655(173)
+               reduce_table.add new ReduceAction483(174)
+               reduce_table.add new ReduceAction657(174)
+               reduce_table.add new ReduceAction483(175)
+               reduce_table.add new ReduceAction659(175)
+               reduce_table.add new ReduceAction483(176)
+               reduce_table.add new ReduceAction661(176)
+               reduce_table.add new ReduceAction662(176)
+               reduce_table.add new ReduceAction483(177)
+               reduce_table.add new ReduceAction664(177)
+               reduce_table.add new ReduceAction665(177)
+               reduce_table.add new ReduceAction483(178)
+               reduce_table.add new ReduceAction667(178)
+               reduce_table.add new ReduceAction668(178)
+               reduce_table.add new ReduceAction669(178)
+               reduce_table.add new ReduceAction483(179)
+               reduce_table.add new ReduceAction671(179)
+               reduce_table.add new ReduceAction483(180)
+               reduce_table.add new ReduceAction673(180)
+               reduce_table.add new ReduceAction674(180)
+               reduce_table.add new ReduceAction675(180)
+               reduce_table.add new ReduceAction676(180)
+               reduce_table.add new ReduceAction483(181)
+               reduce_table.add new ReduceAction678(181)
+               reduce_table.add new ReduceAction679(181)
+               reduce_table.add new ReduceAction1511(181)
+               reduce_table.add new ReduceAction1512(181)
+               reduce_table.add new ReduceAction1513(181)
+               reduce_table.add new ReduceAction1514(181)
+               reduce_table.add new ReduceAction1515(181)
+               reduce_table.add new ReduceAction1516(181)
+               reduce_table.add new ReduceAction1517(181)
+               reduce_table.add new ReduceAction1518(181)
+               reduce_table.add new ReduceAction1519(181)
+               reduce_table.add new ReduceAction483(182)
+               reduce_table.add new ReduceAction1521(182)
+               reduce_table.add new ReduceAction1522(182)
+               reduce_table.add new ReduceAction1523(182)
+               reduce_table.add new ReduceAction1524(182)
+               reduce_table.add new ReduceAction1525(182)
+               reduce_table.add new ReduceAction1526(182)
+               reduce_table.add new ReduceAction1527(182)
+               reduce_table.add new ReduceAction1528(182)
+               reduce_table.add new ReduceAction1529(182)
+               reduce_table.add new ReduceAction518(182)
+               reduce_table.add new ReduceAction736(182)
+               reduce_table.add new ReduceAction1532(182)
+               reduce_table.add new ReduceAction1533(182)
+               reduce_table.add new ReduceAction744(182)
+               reduce_table.add new ReduceAction745(182)
+               reduce_table.add new ReduceAction746(182)
+               reduce_table.add new ReduceAction747(182)
+               reduce_table.add new ReduceAction748(182)
+               reduce_table.add new ReduceAction749(182)
+               reduce_table.add new ReduceAction750(182)
+               reduce_table.add new ReduceAction751(182)
+               reduce_table.add new ReduceAction752(182)
+               reduce_table.add new ReduceAction753(182)
+               reduce_table.add new ReduceAction754(182)
+               reduce_table.add new ReduceAction483(183)
+               reduce_table.add new ReduceAction756(183)
+               reduce_table.add new ReduceAction757(183)
+               reduce_table.add new ReduceAction758(184)
+               reduce_table.add new ReduceAction759(184)
+               reduce_table.add new ReduceAction760(184)
+               reduce_table.add new ReduceAction761(184)
+               reduce_table.add new ReduceAction762(184)
+               reduce_table.add new ReduceAction763(184)
+               reduce_table.add new ReduceAction764(184)
+               reduce_table.add new ReduceAction765(184)
+               reduce_table.add new ReduceAction483(184)
+               reduce_table.add new ReduceAction767(184)
+               reduce_table.add new ReduceAction768(184)
+               reduce_table.add new ReduceAction769(184)
+               reduce_table.add new ReduceAction1560(185)
+               reduce_table.add new ReduceAction1561(185)
+               reduce_table.add new ReduceAction1562(185)
+               reduce_table.add new ReduceAction480(186)
+               reduce_table.add new ReduceAction481(186)
+               reduce_table.add new ReduceAction482(186)
+               reduce_table.add new ReduceAction483(186)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction491(187)
+               reduce_table.add new ReduceAction492(187)
+               reduce_table.add new ReduceAction493(187)
+               reduce_table.add new ReduceAction494(187)
+               reduce_table.add new ReduceAction495(187)
+               reduce_table.add new ReduceAction496(187)
+               reduce_table.add new ReduceAction497(187)
+               reduce_table.add new ReduceAction498(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction483(187)
+               reduce_table.add new ReduceAction506(187)
+               reduce_table.add new ReduceAction507(187)
+               reduce_table.add new ReduceAction508(187)
+               reduce_table.add new ReduceAction509(187)
+               reduce_table.add new ReduceAction510(187)
+               reduce_table.add new ReduceAction511(187)
+               reduce_table.add new ReduceAction512(187)
+               reduce_table.add new ReduceAction513(187)
+               reduce_table.add new ReduceAction514(187)
+               reduce_table.add new ReduceAction515(187)
+               reduce_table.add new ReduceAction516(187)
+               reduce_table.add new ReduceAction517(187)
+               reduce_table.add new ReduceAction518(187)
+               reduce_table.add new ReduceAction519(187)
+               reduce_table.add new ReduceAction520(187)
+               reduce_table.add new ReduceAction521(187)
+               reduce_table.add new ReduceAction522(187)
+               reduce_table.add new ReduceAction523(187)
+               reduce_table.add new ReduceAction522(187)
+               reduce_table.add new ReduceAction525(187)
+               reduce_table.add new ReduceAction526(187)
+               reduce_table.add new ReduceAction525(187)
+               reduce_table.add new ReduceAction528(187)
+               reduce_table.add new ReduceAction529(187)
+               reduce_table.add new ReduceAction528(187)
+               reduce_table.add new ReduceAction531(187)
+               reduce_table.add new ReduceAction605(188)
+               reduce_table.add new ReduceAction606(188)
+               reduce_table.add new ReduceAction607(188)
+               reduce_table.add new ReduceAction608(189)
+               reduce_table.add new ReduceAction617(190)
+               reduce_table.add new ReduceAction618(190)
+               reduce_table.add new ReduceAction619(191)
+               reduce_table.add new ReduceAction620(191)
+               reduce_table.add new ReduceAction621(192)
+               reduce_table.add new ReduceAction622(192)
+               reduce_table.add new ReduceAction626(193)
+               reduce_table.add new ReduceAction627(193)
+               reduce_table.add new ReduceAction631(194)
+               reduce_table.add new ReduceAction632(194)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction491(195)
+               reduce_table.add new ReduceAction492(195)
+               reduce_table.add new ReduceAction493(195)
+               reduce_table.add new ReduceAction494(195)
+               reduce_table.add new ReduceAction495(195)
+               reduce_table.add new ReduceAction496(195)
+               reduce_table.add new ReduceAction497(195)
+               reduce_table.add new ReduceAction498(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction483(195)
+               reduce_table.add new ReduceAction506(195)
+               reduce_table.add new ReduceAction507(195)
+               reduce_table.add new ReduceAction508(195)
+               reduce_table.add new ReduceAction509(195)
+               reduce_table.add new ReduceAction510(195)
+               reduce_table.add new ReduceAction511(195)
+               reduce_table.add new ReduceAction512(195)
+               reduce_table.add new ReduceAction513(195)
+               reduce_table.add new ReduceAction514(195)
+               reduce_table.add new ReduceAction515(195)
+               reduce_table.add new ReduceAction516(195)
+               reduce_table.add new ReduceAction517(195)
+               reduce_table.add new ReduceAction518(195)
+               reduce_table.add new ReduceAction519(195)
+               reduce_table.add new ReduceAction520(195)
+               reduce_table.add new ReduceAction521(195)
+               reduce_table.add new ReduceAction522(195)
+               reduce_table.add new ReduceAction523(195)
+               reduce_table.add new ReduceAction522(195)
+               reduce_table.add new ReduceAction525(195)
+               reduce_table.add new ReduceAction526(195)
+               reduce_table.add new ReduceAction525(195)
+               reduce_table.add new ReduceAction528(195)
+               reduce_table.add new ReduceAction529(195)
+               reduce_table.add new ReduceAction528(195)
+               reduce_table.add new ReduceAction531(195)
+               reduce_table.add new ReduceAction480(196)
+               reduce_table.add new ReduceAction481(196)
+               reduce_table.add new ReduceAction482(196)
+               reduce_table.add new ReduceAction480(197)
+               reduce_table.add new ReduceAction481(197)
+               reduce_table.add new ReduceAction482(197)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction491(198)
+               reduce_table.add new ReduceAction492(198)
+               reduce_table.add new ReduceAction493(198)
+               reduce_table.add new ReduceAction494(198)
+               reduce_table.add new ReduceAction495(198)
+               reduce_table.add new ReduceAction496(198)
+               reduce_table.add new ReduceAction497(198)
+               reduce_table.add new ReduceAction498(198)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction483(198)
+               reduce_table.add new ReduceAction531(198)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction491(199)
+               reduce_table.add new ReduceAction492(199)
+               reduce_table.add new ReduceAction493(199)
+               reduce_table.add new ReduceAction494(199)
+               reduce_table.add new ReduceAction495(199)
+               reduce_table.add new ReduceAction496(199)
+               reduce_table.add new ReduceAction497(199)
+               reduce_table.add new ReduceAction498(199)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction483(199)
+               reduce_table.add new ReduceAction531(199)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction491(200)
+               reduce_table.add new ReduceAction492(200)
+               reduce_table.add new ReduceAction493(200)
+               reduce_table.add new ReduceAction494(200)
+               reduce_table.add new ReduceAction495(200)
+               reduce_table.add new ReduceAction496(200)
+               reduce_table.add new ReduceAction497(200)
+               reduce_table.add new ReduceAction498(200)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction483(200)
+               reduce_table.add new ReduceAction531(200)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction491(201)
+               reduce_table.add new ReduceAction492(201)
+               reduce_table.add new ReduceAction493(201)
+               reduce_table.add new ReduceAction494(201)
+               reduce_table.add new ReduceAction495(201)
+               reduce_table.add new ReduceAction496(201)
+               reduce_table.add new ReduceAction497(201)
+               reduce_table.add new ReduceAction498(201)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction483(201)
+               reduce_table.add new ReduceAction531(201)
+               reduce_table.add new ReduceAction916(202)
+               reduce_table.add new ReduceAction918(202)
+               reduce_table.add new ReduceAction956(203)
+               reduce_table.add new ReduceAction957(203)
+               reduce_table.add new ReduceAction50(203)
+               reduce_table.add new ReduceAction1746(204)
+               reduce_table.add new ReduceAction1747(204)
+               reduce_table.add new ReduceAction1748(205)
+               reduce_table.add new ReduceAction1749(205)
+               reduce_table.add new ReduceAction1750(206)
+               reduce_table.add new ReduceAction1751(206)
+               reduce_table.add new ReduceAction100(207)
+               reduce_table.add new ReduceAction1753(207)
+               reduce_table.add new ReduceAction117(208)
+               reduce_table.add new ReduceAction1755(208)
+               reduce_table.add new ReduceAction817(209)
+               reduce_table.add new ReduceAction1757(209)
+               reduce_table.add new ReduceAction1758(210)
+               reduce_table.add new ReduceAction1759(210)
+               reduce_table.add new ReduceAction1760(211)
+               reduce_table.add new ReduceAction1761(211)
+               reduce_table.add new ReduceAction474(212)
+               reduce_table.add new ReduceAction1763(212)
+               reduce_table.add new ReduceAction778(213)
+               reduce_table.add new ReduceAction1765(213)
+               reduce_table.add new ReduceAction778(214)
+               reduce_table.add new ReduceAction1765(214)
+               reduce_table.add new ReduceAction778(215)
+               reduce_table.add new ReduceAction1765(215)
+               reduce_table.add new ReduceAction930(216)
+               reduce_table.add new ReduceAction1771(216)
+               reduce_table.add new ReduceAction817(217)
+               reduce_table.add new ReduceAction1757(217)
+               reduce_table.add new ReduceAction778(218)
+               reduce_table.add new ReduceAction1765(218)
+               reduce_table.add new ReduceAction778(219)
+               reduce_table.add new ReduceAction1765(219)
+               reduce_table.add new ReduceAction931(220)
+               reduce_table.add new ReduceAction1779(220)
+               reduce_table.add new ReduceAction1780(221)
+               reduce_table.add new ReduceAction1781(221)
+               reduce_table.add new ReduceAction953(222)
+               reduce_table.add new ReduceAction972(222)
+               return reduce_table
        end
-       var _goto: Int
-       init(g: Int) do _goto = g
 end
 
 private class ReduceAction0
@@ -1017,12 +1803,20 @@ private class ReduceAction0
        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
+                                               listnode4,
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1033,15 +1827,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 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
+                                               listnode4,
+                                               listnode6
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1052,16 +1854,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 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
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1072,19 +1882,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 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
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1095,16 +1913,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 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
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1115,19 +1941,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 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
+                                               listnode5,
+                                               listnode7
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1138,20 +1972,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 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
+                                               listnode6,
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1162,11 +2004,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 listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode3 = nodearraylist2
@@ -1175,10 +2019,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
+                                               listnode6,
+                                               listnode8
                                        )
                                        node_list = pmodulenode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1189,22 +2039,23 @@ 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 listnode7 = new Array[Object]
-                                       var listnode6 = new Array[Object]
                                        var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode6
-                                       )
-                                       if pclassdefnode4 != null then
-                                               listnode7.add(pclassdefnode4)
+                                       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
@@ -1216,25 +2067,26 @@ 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 listnode7 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode6 = new Array[Object]
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode6
-                                       )
-                                       if pclassdefnode4 != null then
-                                               listnode7.add(pclassdefnode4)
+                                       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
@@ -1246,26 +2098,27 @@ 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 listnode8 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
-                                       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)
+                                       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
@@ -1277,29 +2130,30 @@ 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 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 listnode7 = new Array[Object]
                                        var listnode6 = nodearraylist3
                                        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)
+                                       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
@@ -1311,26 +2165,27 @@ 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 listnode8 = new Array[Object]
                                        var listnode4 = nodearraylist1
                                        assert listnode4 isa Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist2
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       listnode8 = concat(listnode8, listnode4)
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
+                                       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
@@ -1342,29 +2197,30 @@ 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 listnode8 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
                                        var listnode4 = nodearraylist2
                                        assert listnode4 isa Array[Object]
-                                       var listnode7 = new Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
                                        var listnode6 = nodearraylist3
                                        assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
-                                       )
-                                       listnode8 = concat(listnode8, listnode4)
-                                       if pclassdefnode5 != null then
-                                               listnode8.add(pclassdefnode5)
+                                       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
@@ -1376,30 +2232,31 @@ 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 listnode9 = new Array[Object]
                                        var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist2
                                        assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
                                        var listnode7 = nodearraylist3
                                        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)
+                                       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
@@ -1411,11 +2268,13 @@ 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 listnode9 = new Array[Object]
                                        var pmoduledeclnode2 = nodearraylist1
                                        assert pmoduledeclnode2 isa nullable AModuledecl
@@ -1424,20 +2283,19 @@ private class ReduceAction15
                                        listnode4 = concat(listnode4, listnode3)
                                        var listnode5 = nodearraylist3
                                        assert listnode5 isa Array[Object]
-                                       var listnode8 = new Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
                                        var listnode7 = nodearraylist4
                                        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)
+                                       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
@@ -1449,20 +2307,32 @@ private class ReduceAction16
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var pclassdefnode4 = nodearraylist1
-                                       assert pclassdefnode4 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode5.add(pclassdefnode4)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmodulenode6 = nodearraylist2
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist4
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist5
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
                                                null,
-                                               listnode3,
-                                               listnode5
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1471,23 +2341,36 @@ 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 listnode5 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var pclassdefnode4 = nodearraylist2
-                                       assert pclassdefnode4 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode5.add(pclassdefnode4)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode5
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist4
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist6
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1496,24 +2379,36 @@ private class ReduceAction18
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist4
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist6
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
                                                null,
-                                               listnode4,
-                                               listnode6
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1522,27 +2417,36 @@ private class ReduceAction19
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var pclassdefnode5 = nodearraylist3
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode4,
-                                               listnode6
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist4
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist6
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1551,24 +2455,36 @@ private class ReduceAction20
        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 listnode6 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       var pclassdefnode5 = nodearraylist2
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       listnode6 = concat(listnode6, listnode4)
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist4
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist6
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
                                                null,
-                                               listnode3,
-                                               listnode6
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1577,27 +2493,35 @@ private class ReduceAction21
        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 listnode6 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       var pclassdefnode5 = nodearraylist3
-                                       assert pclassdefnode5 isa nullable AClassdef
-                                       listnode6 = concat(listnode6, listnode4)
-                                       if pclassdefnode5 != null then
-                                               listnode6.add(pclassdefnode5)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode6
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pmodulenode1
+                                       var tkwmodulenode6 = nodearraylist3
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist5
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
+                                       )
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1606,28 +2530,39 @@ private class ReduceAction22
        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 listnode7 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       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(
-                                               null,
-                                               listnode4,
-                                               listnode7
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist5
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist7
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1636,31 +2571,39 @@ private class ReduceAction23
        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 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 listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       var pclassdefnode6 = nodearraylist4
-                                       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,
-                                               listnode4,
-                                               listnode7
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist5
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist7
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1669,31 +2612,39 @@ private class ReduceAction24
        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 listnode8 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist1
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode6
-                                       )
-                                       var pclassdefnode7 = nodearraylist2
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode8.add(pclassdefnode4)
-                                       end
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               null,
-                                               listnode3,
-                                               listnode8
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist5
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist7
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1702,34 +2653,39 @@ private class ReduceAction25
        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 listnode8 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode6 = new Array[Object]
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pclassdefnode4: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode6
-                                       )
-                                       var pclassdefnode7 = nodearraylist3
-                                       assert pclassdefnode7 isa nullable AClassdef
-                                       if pclassdefnode4 != null then
-                                               listnode8.add(pclassdefnode4)
-                                       end
-                                       if pclassdefnode7 != null then
-                                               listnode8.add(pclassdefnode7)
-                                       end
-                                       var pmodulenode1: nullable AModule = new AModule.init_amodule(
-                                               pmoduledeclnode2,
-                                               listnode3,
-                                               listnode8
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmodulenode6 = nodearraylist5
+                                       assert tkwmodulenode6 isa nullable TKwmodule
+                                       var pmodulenamenode7 = nodearraylist7
+                                       assert pmodulenamenode7 isa nullable AModuleName
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmodulenode6,
+                                               pmodulenamenode7,
+                                               pannotationsnode8
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1738,35 +2694,28 @@ private class ReduceAction26
        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 listnode9 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       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 pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       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(
-                                               null,
-                                               listnode4,
-                                               listnode9
+                                       var tkwimportnode4 = nodearraylist2
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist4
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist5
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1775,38 +2724,32 @@ private class ReduceAction27
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var 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 listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
+                                       var tkwpublicnode3 = nodearraylist2
+                                       assert tkwpublicnode3 isa nullable TKwpublic
+                                       var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode3
                                        )
-                                       var pclassdefnode8 = nodearraylist4
-                                       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,
-                                               listnode4,
-                                               listnode9
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist6
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist7
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1815,35 +2758,32 @@ private class ReduceAction28
        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 listnode9 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       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 tkwprivatenode3 = nodearraylist2
+                                       assert tkwprivatenode3 isa nullable TKwprivate
+                                       var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode3
                                        )
-                                       var pclassdefnode8 = nodearraylist3
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       listnode9 = concat(listnode9, listnode4)
-                                       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,
-                                               listnode9
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist6
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist7
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1852,38 +2792,32 @@ private class ReduceAction29
        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 listnode9 = new Array[Object]
-                                       var pmoduledeclnode2 = nodearraylist1
-                                       assert pmoduledeclnode2 isa nullable AModuledecl
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pclassdefnode5: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode7
+                                       var tkwprotectednode3 = nodearraylist2
+                                       assert tkwprotectednode3 isa nullable TKwprotected
+                                       var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode3
                                        )
-                                       var pclassdefnode8 = nodearraylist4
-                                       assert pclassdefnode8 isa nullable AClassdef
-                                       listnode9 = concat(listnode9, listnode4)
-                                       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,
-                                               listnode9
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist6
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist7
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1892,39 +2826,32 @@ private class ReduceAction30
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       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 tkwintrudenode3 = nodearraylist2
+                                       assert tkwintrudenode3 isa nullable TKwintrude
+                                       var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode3
                                        )
-                                       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(
-                                               null,
-                                               listnode4,
-                                               listnode10
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist6
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist7
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1933,42 +2860,29 @@ private class ReduceAction31
        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 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]
-                                       var listnode8 = new Array[Object]
-                                       var listnode7 = nodearraylist4
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var pclassdefnode6: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
-                                               listnode8
+                                       var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       var pclassdefnode9 = nodearraylist5
-                                       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,
-                                               listnode4,
-                                               listnode10
+                                       var tkwimportnode4 = nodearraylist3
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist5
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist6
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
-                                       node_list = pmodulenode1
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -1977,23 +2891,33 @@ private class ReduceAction32
        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 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
+                                       var tkwpublicnode3 = nodearraylist3
+                                       assert tkwpublicnode3 isa nullable TKwpublic
+                                       var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode3
                                        )
-                                       node_list = pmoduledeclnode1
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist7
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist8
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2002,22 +2926,31 @@ private class ReduceAction33
        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 pvisibilitynode2 = nodearraylist2
-                                       assert pvisibilitynode2 isa nullable AVisibility
-                                       var tkwimportnode3 = nodearraylist3
-                                       assert tkwimportnode3 isa nullable TKwimport
-                                       var pmodulenamenode4 = nodearraylist5
-                                       assert pmodulenamenode4 isa nullable AModuleName
+                                       var tkwprivatenode3 = nodearraylist3
+                                       assert tkwprivatenode3 isa nullable TKwprivate
+                                       var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode3
+                                       )
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist7
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist8
+                                       assert pannotationsnode6 isa nullable AAnnotations
                                        var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
                                                pvisibilitynode2,
-                                               tkwimportnode3,
-                                               pmodulenamenode4
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
                                        node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2028,22 +2961,31 @@ private class ReduceAction34
        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 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(
+                                       var tkwprotectednode3 = nodearraylist3
+                                       assert tkwprotectednode3 isa nullable TKwprotected
+                                       var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode3
+                                       )
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist7
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist8
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
                                                pvisibilitynode2,
-                                               tkwimportnode3,
-                                               tkwendnode4
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
                                        )
                                        node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2054,17 +2996,33 @@ private class ReduceAction35
        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 ppropdefnode2 = nodearraylist1
-                                       assert ppropdefnode2 isa nullable APropdef
-                                       if ppropdefnode2 != null then
-                                               listnode3.add(ppropdefnode2)
-                                       end
-                                       var pclassdefnode1: nullable AMainClassdef = new AMainClassdef.init_amainclassdef(
-                                               listnode3
+                                       var tkwintrudenode3 = nodearraylist3
+                                       assert tkwintrudenode3 isa nullable TKwintrude
+                                       var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode3
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var pmodulenamenode5 = nodearraylist7
+                                       assert pmodulenamenode5 isa nullable AModuleName
+                                       var pannotationsnode6 = nodearraylist8
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               pmodulenamenode5,
+                                               pannotationsnode6
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2073,8 +3031,24 @@ private class ReduceAction36
        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
-                                       node_list = null
+                                       var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwimportnode4 = nodearraylist2
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist4
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -2083,19 +3057,32 @@ private class ReduceAction37
        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 pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var ppropdefnode1: nullable AMainMethPropdef = new AMainMethPropdef.init_amainmethpropdef(
-                                               null,
-                                               pexprnode3
+                                       var tkwpublicnode3 = nodearraylist2
+                                       assert tkwpublicnode3 isa nullable TKwpublic
+                                       var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode3
                                        )
-                                       node_list = ppropdefnode1
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist6
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction39
+private class ReduceAction38
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2107,40 +3094,29 @@ private class ReduceAction39
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = 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 tkwendnode10 = nodearraylist7
-                                       assert tkwendnode10 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode9,
-                                               tkwendnode10
+                                       var tkwprivatenode3 = nodearraylist2
+                                       assert tkwprivatenode3 isa nullable TKwprivate
+                                       var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode3
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist6
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction40
+private class ReduceAction39
        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
@@ -2148,42 +3124,29 @@ private class ReduceAction40
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = 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 tkwendnode10 = nodearraylist8
-                                       assert tkwendnode10 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode9,
-                                               tkwendnode10
+                                       var tkwprotectednode3 = nodearraylist2
+                                       assert tkwprotectednode3 isa nullable TKwprotected
+                                       var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode3
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist6
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction41
+private class ReduceAction40
        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
@@ -2191,85 +3154,52 @@ private class ReduceAction41
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode10 = 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 tkwendnode11 = nodearraylist8
-                                       assert tkwendnode11 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode9,
-                                               listnode10,
-                                               tkwendnode11
+                                       var tkwintrudenode3 = nodearraylist2
+                                       assert tkwintrudenode3 isa nullable TKwintrude
+                                       var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode3
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist4
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist6
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction42
+private class ReduceAction41
        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 listnode9 = new Array[Object]
-                                       var listnode10 = 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 tkwendnode11 = nodearraylist9
-                                       assert tkwendnode11 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode9,
-                                               listnode10,
-                                               tkwendnode11
+                                       var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist3
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist5
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction43
+private class ReduceAction42
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2282,43 +3212,29 @@ private class ReduceAction43
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode10 = 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 listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var tkwendnode11 = nodearraylist8
-                                       assert tkwendnode11 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode10,
-                                               tkwendnode11
+                                       var tkwpublicnode3 = nodearraylist3
+                                       assert tkwpublicnode3 isa nullable TKwpublic
+                                       var pvisibilitynode2: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode3
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist7
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction44
+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
@@ -2327,45 +3243,29 @@ private class ReduceAction44
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
-                                       var listnode9 = new Array[Object]
-                                       var listnode10 = 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 listnode8 = nodearraylist7
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var tkwendnode11 = nodearraylist9
-                                       assert tkwendnode11 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode9,
-                                               listnode10,
-                                               tkwendnode11
+                                       var tkwprivatenode3 = nodearraylist3
+                                       assert tkwprivatenode3 isa nullable TKwprivate
+                                       var pvisibilitynode2: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode3
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist7
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction45
+private class ReduceAction44
        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
@@ -2374,47 +3274,29 @@ private class ReduceAction45
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = 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 listnode7 = nodearraylist6
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
+                                       var tkwprotectednode3 = nodearraylist3
+                                       assert tkwprotectednode3 isa nullable TKwprotected
+                                       var pvisibilitynode2: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode3
                                        )
-                                       node_list = pclassdefnode1
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist7
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
+                                       )
+                                       node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction46
+private class ReduceAction45
        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
@@ -2423,38 +3305,31 @@ private class ReduceAction46
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = 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 listnode7 = nodearraylist7
-                                       assert listnode7 isa Array[Object]
-                                       listnode8 = concat(listnode8, listnode7)
-                                       var listnode9 = nodearraylist8
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var tkwendnode12 = nodearraylist10
-                                       assert tkwendnode12 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode11,
-                                               tkwendnode12
+                                       var tkwintrudenode3 = nodearraylist3
+                                       assert tkwintrudenode3 isa nullable TKwintrude
+                                       var pvisibilitynode2: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode3
+                                       )
+                                       var tkwimportnode4 = nodearraylist5
+                                       assert tkwimportnode4 isa nullable TKwimport
+                                       var tkwendnode5 = nodearraylist7
+                                       assert tkwendnode5 isa nullable TKwend
+                                       var pimportnode1: nullable ANoImport = new ANoImport.init_anoimport(
+                                               pvisibilitynode2,
+                                               tkwimportnode4,
+                                               tkwendnode5
                                        )
+                                       node_list = pimportnode1
+                                       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 nodearraylist1 = p.pop
+                                       var pclassdefnode1 = nodearraylist1
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
@@ -2464,40 +3339,16 @@ private class ReduceAction47
        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 listnode8 = new Array[Object]
-                                       var listnode10 = 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 listnode9 = nodearraylist6
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var tkwendnode11 = nodearraylist8
-                                       assert tkwendnode11 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               null,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode10,
-                                               tkwendnode11
+                                       var listnode3 = new Array[Object]
+                                       var ppropdefnode2 = nodearraylist1
+                                       assert ppropdefnode2 isa nullable APropdef
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
+                                       end
+                                       var pclassdefnode1: nullable ATopClassdef = new ATopClassdef.init_atopclassdef(
+                                               listnode3
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2508,43 +3359,15 @@ private class ReduceAction48
        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 listnode8 = new Array[Object]
-                                       var listnode10 = 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 listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var tkwendnode11 = nodearraylist9
-                                       assert tkwendnode11 isa nullable TKwend
-                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
-                                               pdocnode2,
-                                               tkwredefnode3,
-                                               pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
-                                               listnode8,
-                                               listnode10,
-                                               tkwendnode11
+                                       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)
@@ -2555,56 +3378,140 @@ private class ReduceAction49
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist9 = p.pop
-                                       var nodearraylist8 = p.pop
-                                       var nodearraylist7 = p.pop
+                                       node_list = null
+                                       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 nodearraylist1 = p.pop
+                                       node_list = null
+                                       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 nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
+                                       end
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode5,
+                                               null
+                                       )
+                                       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 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 listnode6 = new Array[Object]
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       if pexprnode4 != null then
+                                               listnode6.add(pexprnode4)
+                                       end
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprnode3: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode6,
+                                               null
+                                       )
+                                       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 ReduceAction53
+       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 ReduceAction54
+       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 listnode8 = new Array[Object]
                                        var listnode9 = 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 listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var pclasskindnode6 = nodearraylist2
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist4
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist5
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist6
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
                                                listnode9,
-                                               listnode11,
-                                               tkwendnode12
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction50
+private class ReduceAction55
        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
@@ -2613,48 +3520,46 @@ private class ReduceAction50
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
                                        var listnode9 = 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 listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode12 = nodearraylist10
-                                       assert tkwendnode12 isa nullable TKwend
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist8
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
                                                listnode9,
-                                               listnode11,
-                                               tkwendnode12
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction51
+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
@@ -2663,47 +3568,46 @@ private class ReduceAction51
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
                                        var listnode9 = 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 listnode8 = nodearraylist6
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var listnode10 = nodearraylist7
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode12 = nodearraylist9
-                                       assert tkwendnode12 isa nullable TKwend
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist8
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
                                                listnode9,
-                                               listnode11,
-                                               tkwendnode12
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction52
+private class ReduceAction57
        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
@@ -2712,49 +3616,46 @@ private class ReduceAction52
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode7 = new Array[Object]
                                        var listnode9 = 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 listnode8 = nodearraylist7
-                                       assert listnode8 isa Array[Object]
-                                       listnode9 = concat(listnode9, listnode8)
-                                       var listnode10 = nodearraylist8
-                                       assert listnode10 isa Array[Object]
-                                       listnode11 = concat(listnode11, listnode10)
-                                       var tkwendnode12 = nodearraylist10
-                                       assert tkwendnode12 isa nullable TKwend
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist8
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode7,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
                                                listnode9,
-                                               listnode11,
-                                               tkwendnode12
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction53
+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
@@ -2763,52 +3664,46 @@ private class ReduceAction53
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
+                                       var listnode9 = 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 listnode9 = nodearraylist7
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var listnode11 = nodearraylist8
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist10
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist8
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction54
+private class ReduceAction59
        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
@@ -2816,211 +3711,289 @@ private class ReduceAction54
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode8 = new Array[Object]
-                                       var listnode10 = new Array[Object]
-                                       var listnode12 = new Array[Object]
+                                       var listnode9 = 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 listnode9 = nodearraylist8
-                                       assert listnode9 isa Array[Object]
-                                       listnode10 = concat(listnode10, listnode9)
-                                       var listnode11 = nodearraylist9
-                                       assert listnode11 isa Array[Object]
-                                       listnode12 = concat(listnode12, listnode11)
-                                       var tkwendnode13 = nodearraylist11
-                                       assert tkwendnode13 isa nullable TKwend
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var pclasskindnode6 = nodearraylist3
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist6
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist7
+                                       assert tkwendnode14 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               pclasskindnode5,
-                                               tclassidnode6,
-                                               listnode8,
-                                               listnode10,
-                                               listnode12,
-                                               tkwendnode13
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction55
+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
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwclassnode2 = nodearraylist1
-                                       assert tkwclassnode2 isa nullable TKwclass
-                                       var pclasskindnode1: nullable AConcreteClasskind = new AConcreteClasskind.init_aconcreteclasskind(
-                                               tkwclassnode2
+                                       var listnode9 = 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist8
+                                       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,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = pclasskindnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction56
+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
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        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 ReduceAction57
-       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 ReduceAction58
-       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 ReduceAction59
-       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
+                                       var listnode9 = 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist8
+                                       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,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = pclasskindnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction60
+private class ReduceAction62
        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 listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist3
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
-                                       end
-                                       node_list = listnode2
+                                       var listnode9 = 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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist8
+                                       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,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction61
+private class ReduceAction63
        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 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
+                                       var listnode9 = 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var listnode12 = nodearraylist8
+                                       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,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction62
+private class ReduceAction64
        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 pformaldefnode1 = nodearraylist3
-                                       node_list = pformaldefnode1
-                                       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 nodearraylist1 = p.pop
-                                       var tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pformaldefnode1: nullable AFormaldef = new AFormaldef.init_aformaldef(
-                                               tclassidnode2,
+                                       var listnode9 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
                                                null
                                        )
-                                       node_list = pformaldefnode1
-                                       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 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
+                                       var pclasskindnode6 = nodearraylist2
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist4
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist5
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist6
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist7
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = pformaldefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3029,20 +4002,49 @@ private class ReduceAction65
        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 tkwspecialnode2 = nodearraylist2
-                                       assert tkwspecialnode2 isa nullable TKwspecial
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
-                                               tkwspecialnode2,
+                                       var listnode9 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist7
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist8
+                                       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,
-                                               ptypenode4
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = psuperclassnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3051,20 +4053,49 @@ private class ReduceAction66
        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 tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var ptypenode4 = nodearraylist4
-                                       assert ptypenode4 isa nullable AType
-                                       var psuperclassnode1: nullable ASuperclass = new ASuperclass.init_asuperclass(
+                                       var listnode9 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist7
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist8
+                                       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,
-                                               tkwsupernode3,
-                                               ptypenode4
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = psuperclassnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3073,10 +4104,49 @@ private class ReduceAction67
        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 ppropdefnode1 = nodearraylist1
-                                       node_list = ppropdefnode1
+                                       var listnode9 = new Array[Object]
+                                       var listnode13 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist7
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist8
+                                       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,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3085,6 +4155,8 @@ private class ReduceAction68
        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
@@ -3092,28 +4164,40 @@ private class ReduceAction68
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = 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 tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist7
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist8
+                                       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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3130,30 +4214,40 @@ private class ReduceAction69
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = 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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var pclasskindnode6 = nodearraylist3
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist6
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist7
+                                       assert listnode12 isa Array[Object]
+                                       listnode13 = concat(listnode13, listnode12)
+                                       var tkwendnode14 = nodearraylist8
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3162,6 +4256,8 @@ private class ReduceAction70
        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
@@ -3170,28 +4266,42 @@ private class ReduceAction70
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = 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 tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist8
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist9
+                                       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,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3200,6 +4310,7 @@ private class ReduceAction71
        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
@@ -3209,30 +4320,42 @@ private class ReduceAction71
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = 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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist8
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist9
+                                       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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3241,6 +4364,8 @@ private class ReduceAction72
        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
@@ -3249,28 +4374,42 @@ private class ReduceAction72
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = 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 tkwmethnode5 = nodearraylist3
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist4
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist5
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist8
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist9
+                                       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,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3279,6 +4418,7 @@ private class ReduceAction73
        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
@@ -3288,30 +4428,42 @@ private class ReduceAction73
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode9 = 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 tkwmethnode5 = nodearraylist4
-                                       assert tkwmethnode5 isa nullable TKwmeth
-                                       var pmethidnode6 = nodearraylist5
-                                       assert pmethidnode6 isa nullable AMethid
-                                       var psignaturenode7 = nodearraylist6
-                                       assert psignaturenode7 isa nullable ASignature
-                                       var pexprnode8 = nodearraylist9
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteMethPropdef = new AConcreteMethPropdef.init_aconcretemethpropdef(
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var pexterncodeblocknode11 = nodearraylist8
+                                       assert pexterncodeblocknode11 isa nullable AExternCodeBlock
+                                       var listnode12 = nodearraylist9
+                                       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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               pexterncodeblocknode11,
+                                               listnode13,
+                                               tkwendnode14
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3320,6 +4472,9 @@ private class ReduceAction74
        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
@@ -3327,25 +4482,43 @@ private class ReduceAction74
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var pclasskindnode6 = nodearraylist2
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist4
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist5
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist8
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist9
+                                       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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               null,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3354,6 +4527,10 @@ private class ReduceAction75
        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
@@ -3362,27 +4539,45 @@ private class ReduceAction75
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist11
+                                       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,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               null,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3391,6 +4586,11 @@ private class ReduceAction76
        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
@@ -3398,25 +4598,45 @@ private class ReduceAction76
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist11
+                                       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,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               null,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3425,6 +4645,10 @@ private class ReduceAction77
        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
@@ -3433,27 +4657,45 @@ private class ReduceAction77
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist11
+                                       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,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               null,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3462,6 +4704,11 @@ private class ReduceAction78
        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
@@ -3469,27 +4716,45 @@ private class ReduceAction78
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist11
+                                       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,
                                                null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
                                                null,
-                                               null
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3498,6 +4763,9 @@ private class ReduceAction79
        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
@@ -3506,29 +4774,45 @@ private class ReduceAction79
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var pclasskindnode6 = nodearraylist3
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist6
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist8
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist9
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist10
+                                       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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
                                                null,
-                                               null
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3537,6 +4821,11 @@ private class ReduceAction80
        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
@@ -3545,29 +4834,47 @@ private class ReduceAction80
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               null,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3576,6 +4883,10 @@ private class ReduceAction81
        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
@@ -3585,31 +4896,47 @@ private class ReduceAction81
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               null,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3618,6 +4945,11 @@ private class ReduceAction82
        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
@@ -3626,29 +4958,47 @@ private class ReduceAction82
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
                                                null,
-                                               pexterncallsnode9
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3657,6 +5007,10 @@ private class ReduceAction83
        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
@@ -3666,31 +5020,47 @@ private class ReduceAction83
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
                                                null,
-                                               pexterncallsnode9
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3699,6 +5069,8 @@ private class ReduceAction84
        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
@@ -3708,31 +5080,45 @@ private class ReduceAction84
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var pclasskindnode6 = nodearraylist2
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist4
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist5
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist7
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist8
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist9
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist10
+                                       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,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3741,6 +5127,9 @@ private class ReduceAction85
        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
@@ -3751,33 +5140,47 @@ private class ReduceAction85
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = 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 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(
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist11
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwmethnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3786,31 +5189,60 @@ private class ReduceAction86
        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 listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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(
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist11
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3819,34 +5251,60 @@ private class ReduceAction87
        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 listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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(
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist11
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3855,34 +5313,60 @@ private class ReduceAction88
        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 listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist4
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist7
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist9
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist10
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist11
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist12
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist13
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               pablenode3,
                                                null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3891,37 +5375,59 @@ private class ReduceAction89
        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 listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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,
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
                                                null
                                        )
-                                       node_list = ppropdefnode1
+                                       var pclasskindnode6 = nodearraylist3
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist6
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist8
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist9
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist10
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist11
+                                       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,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
+                                       )
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3930,34 +5436,63 @@ private class ReduceAction90
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist12
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist13
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist14
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -3966,37 +5501,63 @@ private class ReduceAction91
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist12
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist13
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist14
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -4005,37 +5566,63 @@ private class ReduceAction92
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist12
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist13
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist14
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -4044,6 +5631,13 @@ private class ReduceAction93
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist14 = p.pop
+                                       var nodearraylist13 = p.pop
+                                       var nodearraylist12 = p.pop
+                                       var nodearraylist11 = p.pop
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
                                        var nodearraylist7 = p.pop
                                        var nodearraylist6 = p.pop
                                        var nodearraylist5 = p.pop
@@ -4051,33 +5645,49 @@ private class ReduceAction93
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
+                                       var listnode10 = new Array[Object]
+                                       var listnode14 = new Array[Object]
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var pclasskindnode6 = nodearraylist5
+                                       assert pclasskindnode6 isa nullable AClasskind
+                                       var pqclassidnode7 = nodearraylist7
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var tobranode8 = nodearraylist8
+                                       assert tobranode8 isa nullable TObra
+                                       var listnode9 = nodearraylist10
+                                       assert listnode9 isa Array[Object]
+                                       listnode10 = concat(listnode10, listnode9)
+                                       var tcbranode11 = nodearraylist11
+                                       assert tcbranode11 isa nullable TCbra
+                                       var pexterncodeblocknode12 = nodearraylist12
+                                       assert pexterncodeblocknode12 isa nullable AExternCodeBlock
+                                       var listnode13 = nodearraylist13
+                                       assert listnode13 isa Array[Object]
+                                       listnode14 = concat(listnode14, listnode13)
+                                       var tkwendnode15 = nodearraylist14
+                                       assert tkwendnode15 isa nullable TKwend
+                                       var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               pclasskindnode6,
+                                               pqclassidnode7,
+                                               tobranode8,
+                                               listnode10,
+                                               tcbranode11,
+                                               pexterncodeblocknode12,
+                                               listnode14,
+                                               tkwendnode15
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -4086,34 +5696,13 @@ private class ReduceAction94
        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
+                                       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
@@ -4122,37 +5711,17 @@ private class ReduceAction95
        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
+                                       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
@@ -4161,37 +5730,13 @@ private class ReduceAction96
        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
+                                       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
@@ -4200,40 +5745,13 @@ private class ReduceAction97
        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
+                                       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
@@ -4242,37 +5760,17 @@ private class ReduceAction98
        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
+                                       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
@@ -4281,40 +5779,13 @@ private class ReduceAction99
        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
+                                       var tkwsubsetnode2 = nodearraylist1
+                                       assert tkwsubsetnode2 isa nullable TKwsubset
+                                       var pclasskindnode1: nullable ASubsetClasskind = new ASubsetClasskind.init_asubsetclasskind(
+                                               tkwsubsetnode2
                                        )
-                                       node_list = ppropdefnode1
+                                       node_list = pclasskindnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -4323,40 +5794,13 @@ private class ReduceAction100
        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
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode2 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist1
+                                       if pformaldefnode1 != null then
+                                               listnode2.add(pformaldefnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -4365,43 +5809,17 @@ private class ReduceAction101
        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
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode3 = new Array[Object]
+                                       var pformaldefnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       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
@@ -4410,36 +5828,8 @@ private class ReduceAction102
        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 pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -4448,39 +5838,11 @@ private class ReduceAction103
        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 pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               pexprnode11
-                                       )
-                                       node_list = ppropdefnode1
+                                       var pformaldefnode1 = nodearraylist3
+                                       node_list = pformaldefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -4489,39 +5851,19 @@ private class ReduceAction104
        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 pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               pexprnode11
+                                       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
@@ -4530,42 +5872,22 @@ private class ReduceAction105
        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               pexprnode11
+                                       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
@@ -4574,9 +5896,6 @@ private class ReduceAction106
        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
@@ -4584,27 +5903,22 @@ private class ReduceAction106
                                        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 pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwsupernode6 = nodearraylist2
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist4
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist5
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               pexprnode11
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4615,8 +5929,6 @@ private class ReduceAction107
        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
@@ -4626,29 +5938,24 @@ private class ReduceAction107
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist4
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               null,
-                                               pexprnode11
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4659,8 +5966,6 @@ private class ReduceAction108
        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
@@ -4670,29 +5975,24 @@ private class ReduceAction108
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist4
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
                                                null,
-                                               null,
-                                               pexprnode11
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4703,9 +6003,6 @@ private class ReduceAction109
        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
@@ -4715,31 +6012,24 @@ private class ReduceAction109
                                        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 pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist4
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
                                                null,
-                                               pexprnode11
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4750,7 +6040,6 @@ private class ReduceAction110
        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
@@ -4760,27 +6049,24 @@ private class ReduceAction110
                                        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 pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist4
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist6
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
                                                null,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4791,9 +6077,6 @@ private class ReduceAction111
        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
@@ -4802,29 +6085,24 @@ private class ReduceAction111
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwsupernode6 = nodearraylist3
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist5
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist6
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
-                                               null,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4835,7 +6113,6 @@ private class ReduceAction112
        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
@@ -4846,29 +6123,26 @@ private class ReduceAction112
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist5
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist7
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4879,8 +6153,6 @@ private class ReduceAction113
        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
@@ -4891,31 +6163,26 @@ private class ReduceAction113
                                        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 pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist5
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist7
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
-                                               pablenode3,
-                                               null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4926,7 +6193,6 @@ private class ReduceAction114
        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
@@ -4937,29 +6203,26 @@ private class ReduceAction114
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist5
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist7
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -4970,8 +6233,6 @@ private class ReduceAction115
        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
@@ -4982,31 +6243,26 @@ private class ReduceAction115
                                        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 pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwsupernode6 = nodearraylist5
+                                       assert tkwsupernode6 isa nullable TKwsuper
+                                       var ptypenode7 = nodearraylist7
+                                       assert ptypenode7 isa nullable AType
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ASuperPropdef = new ASuperPropdef.init_asuperpropdef(
                                                pdocnode2,
-                                               null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwsupernode6,
+                                               ptypenode7,
+                                               pannotationsnode8
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5017,45 +6273,13 @@ private class ReduceAction116
        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 pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
-                                       )
-                                       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
@@ -5064,48 +6288,13 @@ private class ReduceAction117
        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 pexprnode11 = nodearraylist11
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
-                                               pdocnode2,
-                                               pablenode3,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
-                                               tattridnode8,
-                                               null,
-                                               ptypenode10,
-                                               pexprnode11
-                                       )
-                                       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
@@ -5114,31 +6303,9 @@ private class ReduceAction118
        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
-                                       )
-                                       node_list = ppropdefnode1
+                                       var listnode1 = new Array[Object]
+                                       node_list = listnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -5147,33 +6314,9 @@ private class ReduceAction119
        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
-                                       )
+                                       var ppropdefnode1 = nodearraylist1
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
@@ -5183,6 +6326,8 @@ private class ReduceAction120
        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
@@ -5190,25 +6335,37 @@ private class ReduceAction120
                                        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(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist2
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist5
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist6
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist7
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5219,6 +6376,9 @@ private class ReduceAction121
        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
@@ -5227,27 +6387,39 @@ private class ReduceAction121
                                        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(
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
                                                null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5258,6 +6430,10 @@ private class ReduceAction122
        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
@@ -5265,25 +6441,39 @@ private class ReduceAction122
                                        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(
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
                                                null,
-                                               null
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5294,6 +6484,9 @@ private class ReduceAction123
        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
@@ -5302,27 +6495,39 @@ private class ReduceAction123
                                        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(
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
                                                null,
-                                               tidnode9,
                                                null,
-                                               null
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5333,6 +6538,9 @@ private class ReduceAction124
        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
@@ -5341,27 +6549,39 @@ private class ReduceAction124
                                        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(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5372,6 +6592,7 @@ private class ReduceAction125
        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
@@ -5381,29 +6602,39 @@ private class ReduceAction125
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist3
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               null
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5414,6 +6645,9 @@ private class ReduceAction126
        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
@@ -5423,25 +6657,41 @@ private class ReduceAction126
                                        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 pexprnode11 = nodearraylist7
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
                                                null,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pmethidnode10,
+                                               psignaturenode11,
                                                null,
-                                               tidnode9,
                                                null,
-                                               pexprnode11
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5452,6 +6702,8 @@ private class ReduceAction127
        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
@@ -5462,27 +6714,41 @@ private class ReduceAction127
                                        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 pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
                                                null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
                                                null,
-                                               pexprnode11
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5493,6 +6759,8 @@ private class ReduceAction128
        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
@@ -5503,27 +6771,41 @@ private class ReduceAction128
                                        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 pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
                                                null,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pmethidnode10,
+                                               psignaturenode11,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pexprnode11
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5534,6 +6816,7 @@ private class ReduceAction129
        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
@@ -5545,29 +6828,41 @@ private class ReduceAction129
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
                                                null,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pexprnode11
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5588,27 +6883,39 @@ private class ReduceAction130
                                        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 pexprnode11 = nodearraylist8
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist2
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
                                                null,
-                                               pexprnode11
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5619,6 +6926,7 @@ private class ReduceAction131
        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
@@ -5630,29 +6938,41 @@ private class ReduceAction131
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
                                                null,
-                                               tidnode9,
                                                null,
-                                               pexprnode11
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5663,6 +6983,7 @@ private class ReduceAction132
        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
@@ -5674,29 +6995,41 @@ private class ReduceAction132
                                        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 pexprnode11 = nodearraylist9
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
                                                null,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pexprnode11
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5719,31 +7052,41 @@ private class ReduceAction133
                                        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 pexprnode11 = nodearraylist10
-                                       assert pexprnode11 isa nullable AExpr
-                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
-                                               pablenode4,
-                                               tkwredefnode5,
-                                               pvisibilitynode6,
-                                               tkwvarnode7,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
                                                null,
-                                               tidnode9,
-                                               ptypenode10,
-                                               pexprnode11
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5754,6 +7097,10 @@ private class ReduceAction134
        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
@@ -5762,22 +7109,41 @@ private class ReduceAction134
                                        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 pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwmethnode6,
                                                null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5788,6 +7154,8 @@ private class ReduceAction135
        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
@@ -5799,22 +7167,39 @@ private class ReduceAction135
                                        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 pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist3
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwmethnode6,
                                                null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5825,6 +7210,10 @@ private class ReduceAction136
        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
@@ -5834,24 +7223,43 @@ private class ReduceAction136
                                        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 pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5862,6 +7270,9 @@ private class ReduceAction137
        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
@@ -5874,24 +7285,41 @@ private class ReduceAction137
                                        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 pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5902,6 +7330,10 @@ private class ReduceAction138
        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
@@ -5911,22 +7343,43 @@ private class ReduceAction138
                                        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 pexprnode8 = nodearraylist6
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwmethnode6,
                                                null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5937,6 +7390,9 @@ private class ReduceAction139
        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
@@ -5949,22 +7405,41 @@ private class ReduceAction139
                                        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 pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
+                                               tkwmethnode6,
                                                null,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -5975,9 +7450,6 @@ private class ReduceAction140
        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
@@ -5985,24 +7457,33 @@ private class ReduceAction140
                                        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 pexprnode8 = nodearraylist7
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist2
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6013,8 +7494,6 @@ private class ReduceAction141
        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
@@ -6024,26 +7503,35 @@ private class ReduceAction141
                                        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 pexprnode8 = nodearraylist8
-                                       assert pexprnode8 isa nullable AExpr
-                                       var ppropdefnode1: nullable AConcreteInitPropdef = new AConcreteInitPropdef.init_aconcreteinitpropdef(
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwinitnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               pexprnode8
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6054,6 +7542,8 @@ private class ReduceAction142
        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
@@ -6061,21 +7551,35 @@ private class ReduceAction142
                                        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(
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6086,6 +7590,7 @@ private class ReduceAction143
        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
@@ -6094,23 +7599,35 @@ private class ReduceAction143
                                        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(
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwtypenode5,
-                                               tclassidnode6,
-                                               ptypenode7
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6121,6 +7638,7 @@ private class ReduceAction144
        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
@@ -6129,19 +7647,33 @@ private class ReduceAction144
                                        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(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
                                                null,
-                                               psignaturenode7,
                                                null,
                                                null
                                        )
@@ -6154,7 +7686,6 @@ private class ReduceAction145
        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
@@ -6165,19 +7696,31 @@ private class ReduceAction145
                                        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(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist3
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
                                                null,
-                                               psignaturenode7,
                                                null,
                                                null
                                        )
@@ -6190,6 +7733,7 @@ private class ReduceAction146
        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
@@ -6199,21 +7743,35 @@ private class ReduceAction146
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
                                                null,
                                                null
                                        )
@@ -6238,21 +7796,33 @@ private class ReduceAction147
                                        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(
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
                                                null,
                                                null
                                        )
@@ -6265,6 +7835,7 @@ private class ReduceAction148
        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
@@ -6274,22 +7845,36 @@ private class ReduceAction148
                                        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(
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               null,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6313,22 +7898,34 @@ private class ReduceAction149
                                        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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
                                                null
                                        )
                                        node_list = ppropdefnode1
@@ -6340,9 +7937,6 @@ private class ReduceAction150
        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
@@ -6350,25 +7944,40 @@ private class ReduceAction150
                                        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(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwisanode8 = nodearraylist2
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist3
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist4
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist5
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6379,8 +7988,6 @@ private class ReduceAction151
        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
@@ -6390,27 +7997,42 @@ private class ReduceAction151
                                        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 ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist5
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist6
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist7
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               null
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6430,26 +8052,45 @@ private class ReduceAction152
                                        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(
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist5
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist6
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist7
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9
-                                       )
-                                       node_list = ppropdefnode1
-                                       p.push(p.go_to(_goto), node_list)
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
        end
 end
 private class ReduceAction153
@@ -6457,7 +8098,6 @@ private class ReduceAction153
        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
@@ -6467,25 +8107,42 @@ private class ReduceAction153
                                        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(
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist5
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist6
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist7
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
-                                               tkwredefnode3,
+                                               null,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6496,7 +8153,6 @@ private class ReduceAction154
        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
@@ -6506,25 +8162,42 @@ private class ReduceAction154
                                        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(
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist5
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist6
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist7
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                null,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6535,9 +8208,6 @@ private class ReduceAction155
        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
@@ -6548,25 +8218,40 @@ private class ReduceAction155
                                        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(
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwisanode8 = nodearraylist3
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist4
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist5
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist6
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
                                                null,
-                                               pexterncallsnode9
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6587,25 +8272,44 @@ private class ReduceAction156
                                        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,
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
                                                null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6616,7 +8320,6 @@ private class ReduceAction157
        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
@@ -6629,25 +8332,42 @@ private class ReduceAction157
                                        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(
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
                                                null,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6658,7 +8378,6 @@ private class ReduceAction158
        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
@@ -6669,27 +8388,44 @@ private class ReduceAction158
                                        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,
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
                                                null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6700,8 +8436,6 @@ private class ReduceAction159
        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
@@ -6714,27 +8448,42 @@ private class ReduceAction159
                                        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(
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
                                                pdocnode2,
                                                tkwredefnode3,
                                                pvisibilitynode4,
-                                               tkwnewnode5,
-                                               pmethidnode6,
-                                               psignaturenode7,
-                                               tstringnode8,
-                                               pexterncallsnode9
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -6745,14 +8494,52 @@ private class ReduceAction160
        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 tkwreadablenode3 = nodearraylist1
-                                       assert tkwreadablenode3 isa nullable TKwreadable
-                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwisanode8 = nodearraylist2
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist3
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist4
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist5
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist6
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
                                                null,
-                                               tkwreadablenode3
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6761,17 +8548,56 @@ private class ReduceAction161
        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 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist5
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6780,15 +8606,56 @@ private class ReduceAction162
        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 tkwwritablenode4 = nodearraylist1
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist5
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
                                                null,
                                                null,
-                                               tkwwritablenode4
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6797,18 +8664,56 @@ private class ReduceAction163
        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 tkwredefnode2 = nodearraylist1
-                                       assert tkwredefnode2 isa nullable TKwredef
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
-                                               tkwredefnode2,
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist5
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
                                                null,
-                                               tkwwritablenode4
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6817,18 +8722,56 @@ private class ReduceAction164
        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 pvisibilitynode3 = nodearraylist1
-                                       assert pvisibilitynode3 isa nullable AVisibility
-                                       var tkwwritablenode4 = nodearraylist2
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist4
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist5
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist6
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist7
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist8
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
                                                null,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6837,21 +8780,55 @@ private class ReduceAction165
        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 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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwisanode8 = nodearraylist3
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist4
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist5
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist6
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist7
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6860,9 +8837,59 @@ private class ReduceAction166
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
                                        )
-                                       node_list = pvisibilitynode1
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist6
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist7
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist8
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist9
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6871,14 +8898,59 @@ private class ReduceAction167
        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 tkwprivatenode2 = nodearraylist1
-                                       assert tkwprivatenode2 isa nullable TKwprivate
-                                       var pvisibilitynode1: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
-                                               tkwprivatenode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist6
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist7
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist8
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist9
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pvisibilitynode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6887,14 +8959,59 @@ private class ReduceAction168
        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 tkwprotectednode2 = nodearraylist1
-                                       assert tkwprotectednode2 isa nullable TKwprotected
-                                       var pvisibilitynode1: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
-                                               tkwprotectednode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist6
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist7
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist8
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist9
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pvisibilitynode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6903,14 +9020,59 @@ private class ReduceAction169
        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 tkwintrudenode2 = nodearraylist1
-                                       assert tkwintrudenode2 isa nullable TKwintrude
-                                       var pvisibilitynode1: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
-                                               tkwintrudenode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwisanode8 = nodearraylist5
+                                       assert tkwisanode8 isa nullable TKwisa
+                                       var listnode13 = new Array[Object]
+                                       var psignaturenode11: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode13,
+                                               null,
+                                               null
+                                       )
+                                       var pannotationsnode16 = nodearraylist6
+                                       assert pannotationsnode16 isa nullable AAnnotations
+                                       var tkwdonode19 = nodearraylist7
+                                       assert tkwdonode19 isa nullable TKwdo
+                                       var pexprnode20 = nodearraylist8
+                                       assert pexprnode20 isa nullable AExpr
+                                       var tkwendnode21 = nodearraylist9
+                                       assert tkwendnode21 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               tkwisanode8,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode16,
+                                               null,
+                                               null,
+                                               tkwdonode19,
+                                               pexprnode20,
+                                               tkwendnode21
                                        )
-                                       node_list = pvisibilitynode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6919,13 +9081,39 @@ private class ReduceAction170
        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 pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
-                                               tidnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist3
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist4
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6934,13 +9122,43 @@ private class ReduceAction171
        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 tplusnode2 = nodearraylist1
-                                       assert tplusnode2 isa nullable TPlus
-                                       var pmethidnode1: nullable APlusMethid = new APlusMethid.init_aplusmethid(
-                                               tplusnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6949,13 +9167,43 @@ private class ReduceAction172
        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 tminusnode2 = nodearraylist1
-                                       assert tminusnode2 isa nullable TMinus
-                                       var pmethidnode1: nullable AMinusMethid = new AMinusMethid.init_aminusmethid(
-                                               tminusnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6964,13 +9212,43 @@ private class ReduceAction173
        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 tstarnode2 = nodearraylist1
-                                       assert tstarnode2 isa nullable TStar
-                                       var pmethidnode1: nullable AStarMethid = new AStarMethid.init_astarmethid(
-                                               tstarnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6979,13 +9257,43 @@ private class ReduceAction174
        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 tslashnode2 = nodearraylist1
-                                       assert tslashnode2 isa nullable TSlash
-                                       var pmethidnode1: nullable ASlashMethid = new ASlashMethid.init_aslashmethid(
-                                               tslashnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -6994,13 +9302,42 @@ private class ReduceAction175
        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 tpercentnode2 = nodearraylist1
-                                       assert tpercentnode2 isa nullable TPercent
-                                       var pmethidnode1: nullable APercentMethid = new APercentMethid.init_apercentmethid(
-                                               tpercentnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7009,13 +9346,46 @@ private class ReduceAction176
        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 teqnode2 = nodearraylist1
-                                       assert teqnode2 isa nullable TEq
-                                       var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
-                                               teqnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7024,13 +9394,46 @@ private class ReduceAction177
        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 tnenode2 = nodearraylist1
-                                       assert tnenode2 isa nullable TNe
-                                       var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
-                                               tnenode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7039,13 +9442,46 @@ private class ReduceAction178
        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 tlenode2 = nodearraylist1
-                                       assert tlenode2 isa nullable TLe
-                                       var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
-                                               tlenode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7054,13 +9490,46 @@ private class ReduceAction179
        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 tgenode2 = nodearraylist1
-                                       assert tgenode2 isa nullable TGe
-                                       var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
-                                               tgenode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7069,13 +9538,42 @@ private class ReduceAction180
        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 tltnode2 = nodearraylist1
-                                       assert tltnode2 isa nullable TLt
-                                       var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
-                                               tltnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7084,13 +9582,46 @@ private class ReduceAction181
        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 tgtnode2 = nodearraylist1
-                                       assert tgtnode2 isa nullable TGt
-                                       var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
-                                               tgtnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7099,13 +9630,46 @@ private class ReduceAction182
        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 tllnode2 = nodearraylist1
-                                       assert tllnode2 isa nullable TLl
-                                       var pmethidnode1: nullable ALlMethid = new ALlMethid.init_allmethid(
-                                               tllnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
@@ -7114,837 +9678,20535 @@ private class ReduceAction183
        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 tggnode2 = nodearraylist1
-                                       assert tggnode2 isa nullable TGg
-                                       var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
-                                               tggnode2
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               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 nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist3
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist4
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist5
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist6
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist5
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist6
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist7
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist5
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist6
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist7
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist3
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist4
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist5
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist6
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist7
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       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 pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist2
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist5
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist6
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist3
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist2
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist4
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwmethnode6 = nodearraylist3
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwmethnode6 = nodearraylist5
+                                       assert tkwmethnode6 isa nullable TKwmeth
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode6,
+                                               null,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist2
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist4
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist5
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist3
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist4
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist5
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist2
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist4
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist5
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist7
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist7
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist7
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist7
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist7
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist9
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist3
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist4
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist5
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist6
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist8
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist11
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist8
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist11
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist8
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist11
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       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 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tassignnode9 = nodearraylist8
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist10
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pannotationsnode11 = nodearraylist11
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               tassignnode9,
+                                               pexprnode10,
+                                               pannotationsnode11,
+                                               null,
+                                               null,
+                                               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 pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist2
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist4
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist5
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist6
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist3
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist4
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist5
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist6
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               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 nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction280
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist2
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist4
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist5
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist6
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction281
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction282
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction283
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction284
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction285
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist3
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist4
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist5
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction286
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction287
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction288
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction289
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction290
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist2
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist4
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist5
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist6
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist7
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction291
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction292
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction293
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction294
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction295
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist3
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist4
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist5
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist6
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist8
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction296
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction297
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction298
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction299
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction300
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist2
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist4
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist5
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist6
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist7
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist8
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction301
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction302
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction303
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction304
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist4
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist8
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist10
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction305
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwvarnode6 = nodearraylist3
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist4
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist5
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist6
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist7
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist9
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction306
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction307
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction308
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction309
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwvarnode6 = nodearraylist5
+                                       assert tkwvarnode6 isa nullable TKwvar
+                                       var tidnode7 = nodearraylist6
+                                       assert tidnode7 isa nullable TId
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var tkwdonode12 = nodearraylist9
+                                       assert tkwdonode12 isa nullable TKwdo
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var tkwendnode14 = nodearraylist11
+                                       assert tkwendnode14 isa nullable TKwend
+                                       var ppropdefnode1: nullable AAttrPropdef = new AAttrPropdef.init_aattrpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwvarnode6,
+                                               tidnode7,
+                                               ptypenode8,
+                                               null,
+                                               null,
+                                               pannotationsnode11,
+                                               tkwdonode12,
+                                               pexprnode13,
+                                               tkwendnode14
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction310
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist2
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist3
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist4
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist5
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist6
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction311
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction312
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction313
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction314
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction315
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist3
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist5
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist6
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist7
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction316
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction317
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction318
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction319
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction320
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist2
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist5
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist6
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist7
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction321
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction322
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction323
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction324
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction325
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist3
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction326
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction327
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction328
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction329
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction330
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist2
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist3
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist4
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist5
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist6
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist7
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction331
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction332
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction333
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction334
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction335
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist3
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction336
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction337
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction338
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction339
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction340
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist2
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist6
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist7
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist8
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction341
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction342
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction343
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction344
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist4
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist8
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist9
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist10
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction345
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwinitnode7 = nodearraylist3
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist7
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist8
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist9
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction346
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction347
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction348
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction349
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwinitnode7 = nodearraylist5
+                                       assert tkwinitnode7 isa nullable TKwinit
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var tkwdonode15 = nodearraylist9
+                                       assert tkwdonode15 isa nullable TKwdo
+                                       var pexprnode16 = nodearraylist10
+                                       assert pexprnode16 isa nullable AExpr
+                                       var tkwendnode17 = nodearraylist11
+                                       assert tkwendnode17 isa nullable TKwend
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               tkwinitnode7,
+                                               null,
+                                               null,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               null,
+                                               null,
+                                               tkwdonode15,
+                                               pexprnode16,
+                                               tkwendnode17
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction350
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwtypenode6 = nodearraylist2
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist3
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist4
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist5
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+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 pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist4
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction352
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist4
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction353
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist4
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction354
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist4
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist5
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist6
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist7
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction355
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwtypenode6 = nodearraylist3
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist4
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist5
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist6
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction356
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist5
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist8
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction357
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist5
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist8
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction358
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist5
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist8
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction359
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwtypenode6 = nodearraylist5
+                                       assert tkwtypenode6 isa nullable TKwtype
+                                       var pqclassidnode7 = nodearraylist6
+                                       assert pqclassidnode7 isa nullable AQclassid
+                                       var ptypenode8 = nodearraylist7
+                                       assert ptypenode8 isa nullable AType
+                                       var pannotationsnode9 = nodearraylist8
+                                       assert pannotationsnode9 isa nullable AAnnotations
+                                       var ppropdefnode1: nullable ATypePropdef = new ATypePropdef.init_atypepropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwtypenode6,
+                                               pqclassidnode7,
+                                               ptypenode8,
+                                               pannotationsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction360
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist3
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist4
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist5
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction361
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction362
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction363
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction364
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction365
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist5
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist6
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction366
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction367
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction368
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction369
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction370
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist5
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist6
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction371
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction372
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction373
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction374
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction375
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction376
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction377
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction378
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction379
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               null,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction380
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist3
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist4
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist5
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist6
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction381
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction383
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = 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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction385
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction386
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction387
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction388
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction389
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               null,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction390
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist2
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist3
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist4
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist5
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist6
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist7
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction391
+       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 tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction392
+       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 tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction393
+       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 tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction394
+       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 tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist4
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist5
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist6
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist7
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist8
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist9
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction395
+       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: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var tkwnewnode9 = nodearraylist3
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist4
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist5
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist6
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist7
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist8
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction396
+       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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction397
+       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 tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction398
+       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 tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction399
+       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 tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var tkwnewnode9 = nodearraylist5
+                                       assert tkwnewnode9 isa nullable TKwnew
+                                       var pmethidnode10 = nodearraylist6
+                                       assert pmethidnode10 isa nullable AMethid
+                                       var psignaturenode11 = nodearraylist7
+                                       assert psignaturenode11 isa nullable ASignature
+                                       var pannotationsnode12 = nodearraylist8
+                                       assert pannotationsnode12 isa nullable AAnnotations
+                                       var pexterncallsnode13 = nodearraylist9
+                                       assert pexterncallsnode13 isa nullable AExternCalls
+                                       var pexterncodeblocknode14 = nodearraylist10
+                                       assert pexterncodeblocknode14 isa nullable AExternCodeBlock
+                                       var ppropdefnode1: nullable AMethPropdef = new AMethPropdef.init_amethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               null,
+                                               null,
+                                               null,
+                                               tkwnewnode9,
+                                               pmethidnode10,
+                                               psignaturenode11,
+                                               pannotationsnode12,
+                                               pexterncallsnode13,
+                                               pexterncodeblocknode14,
+                                               null,
+                                               null,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction400
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var ppropdefnode1 = nodearraylist1
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction402
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode6 = new Array[Object]
+                                       var tkwisnode2 = nodearraylist1
+                                       assert tkwisnode2 isa nullable TKwis
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               tkwisnode2,
+                                               null,
+                                               null,
+                                               listnode6,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationsnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction403
+       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 listnode6 = new Array[Object]
+                                       var tkwisnode2 = nodearraylist1
+                                       assert tkwisnode2 isa nullable TKwis
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tkwendnode8 = nodearraylist4
+                                       assert tkwendnode8 isa nullable TKwend
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               tkwisnode2,
+                                               null,
+                                               null,
+                                               listnode6,
+                                               null,
+                                               tkwendnode8
+                                       )
+                                       node_list = pannotationsnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction406
+       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 listnode6 = new Array[Object]
+                                       var tkwisnode2 = nodearraylist1
+                                       assert tkwisnode2 isa nullable TKwis
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               tkwisnode2,
+                                               null,
+                                               null,
+                                               listnode6,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationsnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction407
+       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
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction408
+       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
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction409
+       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
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction410
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarstarnode2 = nodearraylist1
+                                       assert tstarstarnode2 isa nullable TStarstar
+                                       var pmethidnode1: nullable AStarstarMethid = new AStarstarMethid.init_astarstarmethid(
+                                               tstarstarnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       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 nodearraylist1 = p.pop
+                                       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 ReduceAction412
+       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
+                                       )
+                                       node_list = pmethidnode1
+                                       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 nodearraylist1 = p.pop
+                                       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 ReduceAction414
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       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 ReduceAction415
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       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 ReduceAction416
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       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 ReduceAction417
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var teqnode2 = nodearraylist1
+                                       assert teqnode2 isa nullable TEq
+                                       var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
+                                               teqnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction418
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tnenode2 = nodearraylist1
+                                       assert tnenode2 isa nullable TNe
+                                       var pmethidnode1: nullable ANeMethid = new ANeMethid.init_anemethid(
+                                               tnenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction419
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tlenode2 = nodearraylist1
+                                       assert tlenode2 isa nullable TLe
+                                       var pmethidnode1: nullable ALeMethid = new ALeMethid.init_alemethid(
+                                               tlenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction420
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tgenode2 = nodearraylist1
+                                       assert tgenode2 isa nullable TGe
+                                       var pmethidnode1: nullable AGeMethid = new AGeMethid.init_agemethid(
+                                               tgenode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction421
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tltnode2 = nodearraylist1
+                                       assert tltnode2 isa nullable TLt
+                                       var pmethidnode1: nullable ALtMethid = new ALtMethid.init_altmethid(
+                                               tltnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction422
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tgtnode2 = nodearraylist1
+                                       assert tgtnode2 isa nullable TGt
+                                       var pmethidnode1: nullable AGtMethid = new AGtMethid.init_agtmethid(
+                                               tgtnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction423
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tllnode2 = nodearraylist1
+                                       assert tllnode2 isa nullable TLl
+                                       var pmethidnode1: nullable ALlMethid = new ALlMethid.init_allmethid(
+                                               tllnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction424
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tggnode2 = nodearraylist1
+                                       assert tggnode2 isa nullable TGg
+                                       var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
+                                               tggnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction425
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa nullable TCbra
+                                       var pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
+                                               tobranode2,
+                                               tcbranode3
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction426
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarshipnode2 = nodearraylist1
+                                       assert tstarshipnode2 isa nullable TStarship
+                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
+                                               tstarshipnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction427
+       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 tassignnode3 = nodearraylist2
+                                       assert tassignnode3 isa nullable TAssign
+                                       var pmethidnode1: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
+                                               tidnode2,
+                                               tassignnode3
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction428
+       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 tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var tcbranode3 = nodearraylist2
+                                       assert tcbranode3 isa nullable TCbra
+                                       var tassignnode4 = nodearraylist3
+                                       assert tassignnode4 isa nullable TAssign
+                                       var pmethidnode1: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
+                                               tobranode2,
+                                               tcbranode3,
+                                               tassignnode4
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+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 pmethidnode1: nullable AIdMethid = new AIdMethid.init_aidmethid(
+                                               tidnode2
+                                       )
+                                       node_list = pmethidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction430
+       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 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
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction431
+       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 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
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction432
+       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 ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               ptypenode5
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction433
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
+                                               listnode3,
+                                               null,
+                                               null
+                                       )
+                                       node_list = psignaturenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction434
+       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 ReduceAction435
+       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 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 ReduceAction437
+       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 ReduceAction438
+       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,
+                                               null,
+                                               pannotationsnode5
+                                       )
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction439
+       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
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction440
+       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 = 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
+                                       )
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction441
+       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
+                                       )
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction442
+       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
+                                       )
+                                       node_list = pparamnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction443
+       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 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
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction444
+       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
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction446
+       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
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction447
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexterncallnode1 = nodearraylist1
+                                       node_list = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction449
+       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
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction450
+       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 = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction451
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var 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 = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction452
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
+                                               ptypenode2
+                                       )
+                                       node_list = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction453
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tdotnode3 = nodearraylist2
+                                       assert tdotnode3 isa nullable TDot
+                                       var tkwasnode4 = nodearraylist3
+                                       assert tkwasnode4 isa nullable TKwas
+                                       var ptypenode5 = nodearraylist7
+                                       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 ReduceAction454
+       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 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 ReduceAction455
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = 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 ReduceAction456
+       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 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 ReduceAction457
+       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 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 = pexterncallnode1
+                                       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 nodearraylist7 = p.pop
+                                       var 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 = 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 = pexterncallnode1
+                                       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 tstringnode1 = nodearraylist1
+                                       node_list = tstringnode1
+                                       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 nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwinnode2 = nodearraylist1
+                                       assert tkwinnode2 isa nullable TKwin
+                                       var tstringnode3 = nodearraylist3
+                                       assert tstringnode3 isa nullable TString
+                                       var pinlanguagenode1: nullable AInLanguage = new AInLanguage.init_ainlanguage(
+                                               tkwinnode2,
+                                               tstringnode3
+                                       )
+                                       node_list = pinlanguagenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction462
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var texterncodesegmentnode3 = nodearraylist1
+                                       assert texterncodesegmentnode3 isa nullable TExternCodeSegment
+                                       var pexterncodeblocknode1: nullable AExternCodeBlock = new AExternCodeBlock.init_aexterncodeblock(
+                                               null,
+                                               texterncodesegmentnode3
+                                       )
+                                       node_list = pexterncodeblocknode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction463
+       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
+                                       )
+                                       node_list = pexterncodeblocknode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction464
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexterncodeblocknode1 = nodearraylist1
+                                       node_list = pexterncodeblocknode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction466
+       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
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction467
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode1 = nodearraylist1
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction468
+       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 ptypenode1 = nodearraylist1
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction470
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode5 = new Array[Object]
+                                       var pqclassidnode3 = nodearraylist1
+                                       assert pqclassidnode3 isa nullable AQclassid
+                                       var pannotationsnode7 = nodearraylist2
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               pqclassidnode3,
+                                               null,
+                                               listnode5,
+                                               null,
+                                               pannotationsnode7
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction471
+       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 listnode5 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var pqclassidnode3 = nodearraylist2
+                                       assert pqclassidnode3 isa nullable AQclassid
+                                       var pannotationsnode7 = nodearraylist3
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               pqclassidnode3,
+                                               null,
+                                               listnode5,
+                                               null,
+                                               pannotationsnode7
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction472
+       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 listnode6 = new Array[Object]
+                                       var pqclassidnode3 = nodearraylist1
+                                       assert pqclassidnode3 isa nullable AQclassid
+                                       var tobranode4 = nodearraylist2
+                                       assert tobranode4 isa nullable TObra
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tcbranode7 = nodearraylist6
+                                       assert tcbranode7 isa nullable TCbra
+                                       var pannotationsnode8 = nodearraylist7
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               null,
+                                               pqclassidnode3,
+                                               tobranode4,
+                                               listnode6,
+                                               tcbranode7,
+                                               pannotationsnode8
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction473
+       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 listnode6 = new Array[Object]
+                                       var tkwnullablenode2 = nodearraylist1
+                                       assert tkwnullablenode2 isa nullable TKwnullable
+                                       var pqclassidnode3 = nodearraylist2
+                                       assert pqclassidnode3 isa nullable AQclassid
+                                       var tobranode4 = nodearraylist3
+                                       assert tobranode4 isa nullable TObra
+                                       var listnode5 = nodearraylist5
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tcbranode7 = nodearraylist7
+                                       assert tcbranode7 isa nullable TCbra
+                                       var pannotationsnode8 = nodearraylist8
+                                       assert pannotationsnode8 isa nullable AAnnotations
+                                       var ptypenode1: nullable AType = new AType.init_atype(
+                                               tkwnullablenode2,
+                                               pqclassidnode3,
+                                               tobranode4,
+                                               listnode6,
+                                               tcbranode7,
+                                               pannotationsnode8
+                                       )
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction474
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       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 ReduceAction475
+       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 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 ReduceAction476
+       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 ptypenode1 = nodearraylist3
+                                       node_list = ptypenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction480
+       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
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction481
+       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 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 ReduceAction482
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       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
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction483
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode1 = nodearraylist1
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction484
+       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,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction485
+       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
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction486
+       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 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 = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction487
+       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 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 = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction491
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction492
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwreturnnode2 = nodearraylist1
+                                       assert tkwreturnnode2 isa nullable TKwreturn
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
+                                               tkwreturnnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction493
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwyieldnode2 = nodearraylist1
+                                       assert tkwyieldnode2 isa nullable TKwyield
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AYieldExpr = new AYieldExpr.init_ayieldexpr(
+                                               tkwyieldnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction494
+       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 pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
+                                               tkwbreaknode2,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction495
+       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
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction496
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwabortnode2 = nodearraylist1
+                                       assert tkwabortnode2 isa nullable TKwabort
+                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
+                                               tkwabortnode2
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction497
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction498
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwcontinuenode2 = nodearraylist1
+                                       assert tkwcontinuenode2 isa nullable TKwcontinue
+                                       var plabelnode3 = nodearraylist2
+                                       assert plabelnode3 isa nullable ALabel
+                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                               tkwcontinuenode2,
+                                               plabelnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction506
+       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 tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist5
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction507
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction508
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction509
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist6
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction510
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction511
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction512
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction513
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction514
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction515
+       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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction516
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction517
+       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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction518
+       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 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 ReduceAction519
+       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 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 ReduceAction520
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tkwinitnode5 = nodearraylist5
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pexprsnode6 = nodearraylist6
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction521
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       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(
+                                               pexprnode2,
+                                               tkwinitnode3,
+                                               pexprsnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction522
+       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 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 ReduceAction523
+       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 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 ReduceAction525
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tkwinitnode5 = nodearraylist6
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pexprsnode6 = nodearraylist7
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction526
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tkwinitnode5 = nodearraylist7
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var pexprsnode6 = nodearraylist8
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction528
+       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: 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 ReduceAction529
+       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 = 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 ReduceAction531
+       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 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 ReduceAction532
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               null
+                                       )
+                                       node_list = plabelnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction533
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwlabelnode2 = nodearraylist1
+                                       assert tkwlabelnode2 isa nullable TKwlabel
+                                       var tidnode3 = nodearraylist2
+                                       assert tidnode3 isa nullable TId
+                                       var plabelnode1: nullable ALabel = new ALabel.init_alabel(
+                                               tkwlabelnode2,
+                                               tidnode3
+                                       )
+                                       node_list = plabelnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction534
+       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,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction535
+       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 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 ReduceAction536
+       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 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 ReduceAction537
+       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 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 ReduceAction538
+       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 = 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 ReduceAction539
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tattridnode5 = nodearraylist6
+                                       assert tattridnode5 isa nullable TAttrid
+                                       var tassignnode6 = nodearraylist7
+                                       assert tassignnode6 isa nullable TAssign
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
+                                               pexprnode2,
+                                               tattridnode5,
+                                               tassignnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction540
+       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 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 ReduceAction541
+       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 tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist5
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var tassignnode7 = nodearraylist6
+                                       assert tassignnode7 isa nullable TAssign
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction542
+       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 tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var tassignnode8 = nodearraylist5
+                                       assert tassignnode8 isa nullable TAssign
+                                       var pexprnode9 = nodearraylist6
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction543
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var tassignnode9 = nodearraylist7
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction544
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var tassignnode10 = nodearraylist6
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction545
+       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 pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist8
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction546
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist7
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction547
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist6
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist7
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction548
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist6
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist7
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction549
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var tassignnode9 = nodearraylist7
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               tassignnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction550
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var tassignnode10 = nodearraylist6
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction551
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var tassignnode11 = nodearraylist8
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction552
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var tassignnode12 = nodearraylist7
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               tassignnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction553
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var tassignnode12 = nodearraylist9
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction554
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var tassignnode13 = nodearraylist8
+                                       assert tassignnode13 isa nullable TAssign
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction555
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var tassignnode12 = nodearraylist8
+                                       assert tassignnode12 isa nullable TAssign
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction556
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var tassignnode13 = nodearraylist7
+                                       assert tassignnode13 isa nullable TAssign
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               tassignnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction557
+       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 tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var tassignnode7 = nodearraylist3
+                                       assert tassignnode7 isa nullable TAssign
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction558
+       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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var tassignnode8 = nodearraylist2
+                                       assert tassignnode8 isa nullable TAssign
+                                       var pexprnode9 = nodearraylist3
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               tassignnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction559
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var tassignnode9 = nodearraylist4
+                                       assert tassignnode9 isa nullable TAssign
+                                       var pexprnode10 = nodearraylist5
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction560
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var tassignnode10 = nodearraylist3
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist4
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction561
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist5
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist6
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction562
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist4
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist5
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction563
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var tassignnode10 = nodearraylist4
+                                       assert tassignnode10 isa nullable TAssign
+                                       var pexprnode11 = nodearraylist5
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction564
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var tassignnode11 = nodearraylist3
+                                       assert tassignnode11 isa nullable TAssign
+                                       var pexprnode12 = nodearraylist4
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               tassignnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction565
+       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 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 ReduceAction566
+       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 = 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,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction567
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tattridnode5 = nodearraylist6
+                                       assert tattridnode5 isa nullable TAttrid
+                                       var passignopnode6 = nodearraylist7
+                                       assert passignopnode6 isa nullable AAssignOp
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
+                                               pexprnode2,
+                                               tattridnode5,
+                                               passignopnode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction568
+       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 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,
+                                               tattridnode3,
+                                               passignopnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction569
+       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 tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist5
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var passignopnode7 = nodearraylist6
+                                       assert passignopnode7 isa nullable AAssignOp
+                                       var pexprnode8 = nodearraylist7
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction570
+       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 tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var passignopnode8 = nodearraylist5
+                                       assert passignopnode8 isa nullable AAssignOp
+                                       var pexprnode9 = nodearraylist6
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction571
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist7
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction572
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist6
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction573
+       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 pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist8
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist9
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var 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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist7
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist8
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction575
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist6
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist7
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist8
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       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 nodearraylist7 = p.pop
+                                       var 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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist6
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist7
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction577
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist6
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist7
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist8
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       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 nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist6
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist7
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction579
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var passignopnode11 = nodearraylist8
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist9
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var passignopnode12 = nodearraylist7
+                                       assert passignopnode12 isa nullable AAssignOp
+                                       var pexprnode13 = nodearraylist8
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10,
+                                               passignopnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction581
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var passignopnode12 = nodearraylist9
+                                       assert passignopnode12 isa nullable AAssignOp
+                                       var pexprnode13 = nodearraylist10
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction582
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var passignopnode13 = nodearraylist8
+                                       assert passignopnode13 isa nullable AAssignOp
+                                       var pexprnode14 = nodearraylist9
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction583
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist7
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var passignopnode12 = nodearraylist8
+                                       assert passignopnode12 isa nullable AAssignOp
+                                       var pexprnode13 = nodearraylist9
+                                       assert pexprnode13 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode12,
+                                               pexprnode13
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction584
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var passignopnode13 = nodearraylist7
+                                       assert passignopnode13 isa nullable AAssignOp
+                                       var pexprnode14 = nodearraylist8
+                                       assert pexprnode14 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11,
+                                               passignopnode13,
+                                               pexprnode14
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction585
+       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 tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var pexprsnode6 = nodearraylist2
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var passignopnode7 = nodearraylist3
+                                       assert passignopnode7 isa nullable AAssignOp
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode7,
+                                               pexprnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction586
+       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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var passignopnode8 = nodearraylist2
+                                       assert passignopnode8 isa nullable AAssignOp
+                                       var pexprnode9 = nodearraylist3
+                                       assert pexprnode9 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6,
+                                               passignopnode8,
+                                               pexprnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction587
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist3
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var passignopnode9 = nodearraylist4
+                                       assert passignopnode9 isa nullable AAssignOp
+                                       var pexprnode10 = nodearraylist5
+                                       assert pexprnode10 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode9,
+                                               pexprnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction588
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var passignopnode10 = nodearraylist3
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist4
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction589
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist5
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist6
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction590
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist4
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist5
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction591
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist3
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var passignopnode10 = nodearraylist4
+                                       assert passignopnode10 isa nullable AAssignOp
+                                       var pexprnode11 = nodearraylist5
+                                       assert pexprnode11 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode10,
+                                               pexprnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction592
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var passignopnode11 = nodearraylist3
+                                       assert passignopnode11 isa nullable AAssignOp
+                                       var pexprnode12 = nodearraylist4
+                                       assert pexprnode12 isa nullable AExpr
+                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9,
+                                               passignopnode11,
+                                               pexprnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction593
+       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 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 = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction594
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpluseqnode2 = nodearraylist1
+                                       assert tpluseqnode2 isa nullable TPluseq
+                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
+                                               tpluseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction595
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tminuseqnode2 = nodearraylist1
+                                       assert tminuseqnode2 isa nullable TMinuseq
+                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
+                                               tminuseqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction596
+       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 ReduceAction597
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tslasheqnode2 = nodearraylist1
+                                       assert tslasheqnode2 isa nullable TSlasheq
+                                       var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
+                                               tslasheqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction598
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpercenteqnode2 = nodearraylist1
+                                       assert tpercenteqnode2 isa nullable TPercenteq
+                                       var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
+                                               tpercenteqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction599
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tstarstareqnode2 = nodearraylist1
+                                       assert tstarstareqnode2 isa nullable TStarstareq
+                                       var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
+                                               tstarstareqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction600
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tpipeeqnode2 = nodearraylist1
+                                       assert tpipeeqnode2 isa nullable TPipeeq
+                                       var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
+                                               tpipeeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction601
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tcareteqnode2 = nodearraylist1
+                                       assert tcareteqnode2 isa nullable TCareteq
+                                       var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
+                                               tcareteqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction602
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tampeqnode2 = nodearraylist1
+                                       assert tampeqnode2 isa nullable TAmpeq
+                                       var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
+                                               tampeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction603
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tlleqnode2 = nodearraylist1
+                                       assert tlleqnode2 isa nullable TLleq
+                                       var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
+                                               tlleqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       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 tggeqnode2 = nodearraylist1
+                                       assert tggeqnode2 isa nullable TGgeq
+                                       var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
+                                               tggeqnode2
+                                       )
+                                       node_list = passignopnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction605
+       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 tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var plabelnode6 = nodearraylist3
+                                       assert plabelnode6 isa nullable ALabel
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               null,
+                                               null,
+                                               plabelnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction606
+       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,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction607
+       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 tkwdonode2 = nodearraylist1
+                                       assert tkwdonode2 isa nullable TKwdo
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tkwcatchnode4 = nodearraylist4
+                                       assert tkwcatchnode4 isa nullable TKwcatch
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
+                                               tkwdonode2,
+                                               pexprnode3,
+                                               tkwcatchnode4,
+                                               pexprnode5,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction608
+       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 tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tkwelsenode6 = nodearraylist7
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction609
+       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 tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist6
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction610
+       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 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 = nodearraylist8
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist9
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction611
+       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 tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var tkwelsenode6 = nodearraylist6
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction612
+       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 tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var tkwelsenode6 = nodearraylist7
+                                       assert tkwelsenode6 isa nullable TKwelse
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               tkwelsenode6,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction613
+       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 tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode7 = nodearraylist8
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
+                                               null,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction614
+       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 tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode7 = nodearraylist6
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               null,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction615
+       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 tkwthennode4 = nodearraylist5
+                                       assert tkwthennode4 isa nullable TKwthen
+                                       var pexprnode7 = nodearraylist7
+                                       assert pexprnode7 isa nullable AExpr
+                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               null,
+                                               null,
+                                               pexprnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction617
+       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
+                                       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 ReduceAction618
+       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 ReduceAction619
+       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
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction620
+       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
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction621
+       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 tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwdonode5 = nodearraylist5
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var plabelnode7 = nodearraylist7
+                                       assert plabelnode7 isa nullable ALabel
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               plabelnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction622
+       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 tkwfornode2 = nodearraylist1
+                                       assert tkwfornode2 isa nullable TKwfor
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tkwdonode5 = nodearraylist5
+                                       assert tkwdonode5 isa nullable TKwdo
+                                       var pexprnode6 = nodearraylist6
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AForExpr = new AForExpr.init_aforexpr(
+                                               tkwfornode2,
+                                               listnode4,
+                                               tkwdonode5,
+                                               pexprnode6,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction623
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pforgroupnode1 = nodearraylist1
+                                       if pforgroupnode1 != null then
+                                               listnode2.add(pforgroupnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction624
+       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 listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var pforgroupnode2 = nodearraylist5
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if pforgroupnode2 != null then
+                                               listnode3.add(pforgroupnode2)
+                                       end
+                                       node_list = listnode3
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction625
+       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 listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var tkwinnode4 = nodearraylist3
+                                       assert tkwinnode4 isa nullable TKwin
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pforgroupnode1: nullable AForGroup = new AForGroup.init_aforgroup(
+                                               listnode3,
+                                               tkwinnode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pforgroupnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction626
+       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 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 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 ReduceAction627
+       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 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 ReduceAction628
+       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 tidnode3 = nodearraylist1
+                                       assert tidnode3 isa nullable TId
+                                       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 AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction629
+       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 tidnode3 = nodearraylist1
+                                       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 pannotationsnode7 = nodearraylist2
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+                                               null,
+                                               tidnode3,
+                                               ptypenode4,
+                                               tassignnode5,
+                                               pexprnode6,
+                                               pannotationsnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction631
+       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
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tkwelsenode5 = nodearraylist3
+                                       assert tkwelsenode5 isa nullable TKwelse
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
+                                               tkwelsenode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction632
+       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 tkwelsenode5 = nodearraylist4
+                                       assert tkwelsenode5 isa nullable TKwelse
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               tidnode3,
+                                               pexprnode4,
+                                               tkwelsenode5,
+                                               pexprnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction633
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwassertnode2 = nodearraylist1
+                                       assert tkwassertnode2 isa nullable TKwassert
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
+                                               tkwassertnode2,
+                                               null,
+                                               pexprnode4,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction634
+       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 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,
+                                               null
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction635
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tidnode1 = nodearraylist1
+                                       node_list = tidnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction637
+       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
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction639
+       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 tkwornode3 = nodearraylist2
+                                       assert tkwornode3 isa nullable TKwor
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       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 ReduceAction640
+       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 tkwandnode3 = nodearraylist2
+                                       assert tkwandnode3 isa nullable TKwand
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       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 ReduceAction641
+       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 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 AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
+                                               pexprnode2,
+                                               tkwornode3,
+                                               tkwelsenode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction642
+       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 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 ReduceAction644
+       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 tkwnotnode2 = nodearraylist1
+                                       assert tkwnotnode2 isa nullable TKwnot
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable ANotExpr = new ANotExpr.init_anotexpr(
+                                               tkwnotnode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction646
+       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 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 ReduceAction647
+       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 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 ReduceAction648
+       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 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 ReduceAction649
+       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 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 ReduceAction650
+       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 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 ReduceAction651
+       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 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 ReduceAction652
+       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 tstarshipnode3 = nodearraylist2
+                                       assert tstarshipnode3 isa nullable TStarship
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       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 ReduceAction653
+       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 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 ReduceAction655
+       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 tpipenode3 = nodearraylist2
+                                       assert tpipenode3 isa nullable TPipe
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       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 ReduceAction657
+       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 tcaretnode3 = nodearraylist2
+                                       assert tcaretnode3 isa nullable TCaret
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       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 ReduceAction659
+       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 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 ReduceAction661
+       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 tllnode3 = nodearraylist2
+                                       assert tllnode3 isa nullable TLl
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+                                               pexprnode2,
+                                               tllnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction662
+       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 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 ReduceAction664
+       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 tplusnode3 = nodearraylist2
+                                       assert tplusnode3 isa nullable TPlus
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+                                               pexprnode2,
+                                               tplusnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction665
+       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 tminusnode3 = nodearraylist2
+                                       assert tminusnode3 isa nullable TMinus
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+                                               pexprnode2,
+                                               tminusnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction667
+       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 tstarnode3 = nodearraylist2
+                                       assert tstarnode3 isa nullable TStar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+                                               pexprnode2,
+                                               tstarnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction668
+       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 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 ReduceAction669
+       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 tpercentnode3 = nodearraylist2
+                                       assert tpercentnode3 isa nullable TPercent
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
+                                               pexprnode2,
+                                               tpercentnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction671
+       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 tstarstarnode3 = nodearraylist2
+                                       assert tstarstarnode3 isa nullable TStarstar
+                                       var pexprnode4 = nodearraylist4
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
+                                               pexprnode2,
+                                               tstarstarnode3,
+                                               pexprnode4
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction673
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tminusnode2 = nodearraylist1
+                                       assert tminusnode2 isa nullable TMinus
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       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 ReduceAction674
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tplusnode2 = nodearraylist1
+                                       assert tplusnode2 isa nullable TPlus
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       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 ReduceAction675
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ttildenode2 = nodearraylist1
+                                       assert ttildenode2 isa nullable TTilde
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       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 ReduceAction676
+       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 tkwoncenode2 = nodearraylist1
+                                       assert tkwoncenode2 isa nullable TKwonce
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
+                                               tkwoncenode2,
+                                               pexprnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction678
+       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
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction679
+       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 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 ReduceAction680
+       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 tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       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 ReduceAction681
+       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 tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var tattridnode6 = nodearraylist7
+                                       assert tattridnode6 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction682
+       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 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 ReduceAction683
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var pexprsnode7 = nodearraylist6
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction684
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist5
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction685
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction686
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction687
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist6
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist8
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction688
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist6
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction689
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist7
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction690
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction691
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist7
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction692
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction693
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode10
+                                       )
+                                       var pexprsnode11 = nodearraylist8
+                                       assert pexprsnode11 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction694
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction695
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tclassidnode10 = nodearraylist7
+                                       assert tclassidnode10 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               tclassidnode10
+                                       )
+                                       var tidnode11 = nodearraylist8
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var pexprsnode12 = nodearraylist9
+                                       assert pexprsnode12 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction696
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tclassidnode10 = nodearraylist7
+                                       assert tclassidnode10 isa nullable TClassid
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               tclassidnode10
+                                       )
+                                       var tidnode11 = nodearraylist8
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var listnode13 = new Array[Object]
+                                       var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode13
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction697
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               null
+                                       )
+                                       var tidnode11 = nodearraylist7
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var pexprsnode12 = nodearraylist8
+                                       assert pexprsnode12 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction698
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode4 = nodearraylist2
+                                       assert pexprnode4 isa nullable AExpr
+                                       var tquestnode5 = nodearraylist3
+                                       assert tquestnode5 isa nullable TQuest
+                                       var pexprnode3: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode4,
+                                               tquestnode5
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pqualifiednode7: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode9,
+                                               null
+                                       )
+                                       var tidnode11 = nodearraylist7
+                                       assert tidnode11 isa nullable TId
+                                       var pqidnode6: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode7,
+                                               tidnode11
+                                       )
+                                       var listnode13 = new Array[Object]
+                                       var pexprsnode12: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode13
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode6,
+                                               pexprsnode12
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction699
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode6 = nodearraylist2
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var pexprsnode7 = nodearraylist3
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction700
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode6 = nodearraylist2
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction701
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction702
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction703
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist3
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist5
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction704
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist3
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction705
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist3
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist4
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction706
+       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 tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist3
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction708
+       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 tattridnode3 = nodearraylist5
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction709
+       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 pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var tattridnode5 = nodearraylist6
+                                       assert tattridnode5 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode5
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction710
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       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 pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction712
+       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 tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
+                                       )
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction714
+       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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist4
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction716
+       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist5
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist6
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction184
+private class ReduceAction718
        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 tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var tcbranode3 = nodearraylist2
-                                       assert tcbranode3 isa nullable TCbra
-                                       var pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode2,
-                                               tcbranode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
                                        )
-                                       node_list = pmethidnode1
-                                       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 nodearraylist1 = p.pop
-                                       var tstarshipnode2 = nodearraylist1
-                                       assert tstarshipnode2 isa nullable TStarship
-                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode2
+                                       var tidnode8 = nodearraylist5
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
                                        )
-                                       node_list = pmethidnode1
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction186
+private class ReduceAction720
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var tassignnode3 = nodearraylist2
-                                       assert tassignnode3 isa nullable TAssign
-                                       var pmethidnode1: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode2,
-                                               tassignnode3
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = pmethidnode1
+                                       var tidnode7 = nodearraylist5
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction187
+private class ReduceAction722
        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 tobranode2 = nodearraylist1
-                                       assert tobranode2 isa nullable TObra
-                                       var tcbranode3 = nodearraylist2
-                                       assert tcbranode3 isa nullable TCbra
-                                       var tassignnode4 = nodearraylist3
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pmethidnode1: nullable ABraassignMethid = new ABraassignMethid.init_abraassignmethid(
-                                               tobranode2,
-                                               tcbranode3,
-                                               tassignnode4
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = pmethidnode1
+                                       var listnode7 = new Array[Object]
+                                       var tclassidnode8 = nodearraylist5
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist6
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction188
+private class ReduceAction724
        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 listnode5 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode5
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = psignaturenode1
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var tclassidnode9 = nodearraylist6
+                                       assert tclassidnode9 isa nullable TClassid
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               tclassidnode9
+                                       )
+                                       var tidnode10 = nodearraylist7
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction189
+private class ReduceAction726
        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 listnode6 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var listnode5 = nodearraylist3
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode6
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = psignaturenode1
+                                       var listnode8 = new Array[Object]
+                                       var listnode7 = nodearraylist5
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pqualifiednode6: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode8,
+                                               null
+                                       )
+                                       var tidnode10 = nodearraylist6
+                                       assert tidnode10 isa nullable TId
+                                       var pqidnode5: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode6,
+                                               tidnode10
+                                       )
+                                       var listnode12 = new Array[Object]
+                                       var pexprsnode11: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode12
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode5,
+                                               pexprsnode11
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction190
+private class ReduceAction728
        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 listnode4 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode4
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tidnode5 = nodearraylist1
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
                                        )
-                                       node_list = psignaturenode1
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction191
+private class ReduceAction730
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode5
+                                       var tclassidnode6 = nodearraylist1
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
                                        )
-                                       node_list = psignaturenode1
+                                       var tidnode7 = nodearraylist2
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction192
+private class ReduceAction732
        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 listnode5 = new Array[Object]
-                                       var listnode4 = nodearraylist1
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               null,
-                                               listnode5
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist1
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist2
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
                                        )
-                                       node_list = psignaturenode1
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction193
+private class ReduceAction734
        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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var listnode6 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var listnode5 = nodearraylist2
+                                       var listnode5 = nodearraylist1
                                        assert listnode5 isa Array[Object]
                                        listnode6 = concat(listnode6, listnode5)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               null,
-                                               listnode6
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist2
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction194
+private class ReduceAction736
        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 listnode4 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               null,
-                                               listnode4
+                                       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
                                        )
-                                       node_list = psignaturenode1
+                                       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 ReduceAction195
+private class ReduceAction738
        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
+                                       var tkwinitnode3 = nodearraylist4
+                                       assert tkwinitnode3 isa nullable TKwinit
                                        var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               null,
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode5
                                        )
-                                       node_list = psignaturenode1
+                                       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 ReduceAction196
+private class ReduceAction740
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               null,
-                                               listnode4
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pexprnode3 = nodearraylist1
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
                                        )
-                                       node_list = psignaturenode1
+                                       var tkwinitnode5 = nodearraylist5
+                                       assert tkwinitnode5 isa nullable TKwinit
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
+                                               pexprnode2,
+                                               tkwinitnode5,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction197
+private class ReduceAction742
        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: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       var tkwinitnode3 = nodearraylist1
+                                       assert tkwinitnode3 isa nullable TKwinit
                                        var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               null,
+                                       var pexprsnode4: nullable AListExprs = new AListExprs.init_alistexprs(
                                                listnode5
                                        )
-                                       node_list = psignaturenode1
+                                       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 ReduceAction198
+private class ReduceAction743
        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 listnode4 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode4
+                                       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
                                        )
-                                       node_list = psignaturenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction199
+private class ReduceAction744
        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 listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
-                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               ptypenode4,
-                                               listnode5
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode6 = nodearraylist6
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
                                        )
-                                       node_list = psignaturenode1
+                                       var pexprsnode7 = nodearraylist7
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction200
+private class ReduceAction745
        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 pparamnode1 = nodearraylist3
-                                       if pparamnode1 != null then
-                                               listnode2.add(pparamnode1)
-                                       end
-                                       node_list = listnode2
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var tidnode6 = nodearraylist6
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
+                                       )
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction201
+private class ReduceAction746
        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 listnode3 = new Array[Object]
-                                       var pparamnode1 = nodearraylist3
-                                       var listnode2 = nodearraylist4
-                                       assert listnode2 isa Array[Object]
-                                       if pparamnode1 != null then
-                                               listnode3.add(pparamnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist6
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist7
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist8
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction202
+private class ReduceAction747
        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 listnode1 = new Array[Object]
-                                       node_list = listnode1
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist6
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist7
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction203
+private class ReduceAction748
        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 pparamnode1 = nodearraylist3
-                                       node_list = pparamnode1
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist7
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
+                                       )
+                                       var tidnode9 = nodearraylist8
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist9
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction204
+private class ReduceAction749
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               null,
-                                               null
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
+                                       assert ptypenode3 isa nullable AType
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist7
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
                                        )
-                                       node_list = pparamnode1
+                                       var tidnode9 = nodearraylist8
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction205
+private class ReduceAction750
        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 tidnode2 = nodearraylist1
-                                       assert tidnode2 isa nullable TId
-                                       var ptypenode3 = nodearraylist2
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
                                        assert ptypenode3 isa nullable AType
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
-                                               ptypenode3,
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
                                                null
                                        )
-                                       node_list = pparamnode1
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist8
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
+                                               ptypenode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction206
+private class ReduceAction751
        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 ptypenode3 = nodearraylist2
+                                       var tkwnewnode2 = nodearraylist1
+                                       assert tkwnewnode2 isa nullable TKwnew
+                                       var ptypenode3 = nodearraylist3
                                        assert ptypenode3 isa nullable AType
-                                       var tdotdotdotnode4 = nodearraylist3
-                                       assert tdotdotdotnode4 isa nullable TDotdotdot
-                                       var pparamnode1: nullable AParam = new AParam.init_aparam(
-                                               tidnode2,
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist7
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
+                                               tkwnewnode2,
                                                ptypenode3,
-                                               tdotdotdotnode4
+                                               pqidnode4,
+                                               pexprsnode10
                                        )
-                                       node_list = pparamnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction207
+private class ReduceAction752
        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 listnode2 = new Array[Object]
-                                       var listnode1 = nodearraylist2
-                                       assert listnode1 isa Array[Object]
-                                       listnode2 = concat(listnode2, listnode1)
-                                       node_list = listnode2
+                                       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 ReduceAction208
+private class ReduceAction753
        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 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
+                                       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 = pclosuredeclnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction209
+private class ReduceAction754
        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 pclosuredeclnode1: nullable AClosureDecl = new AClosureDecl.init_aclosuredecl(
-                                               tkwbreaknode2,
-                                               tbangnode3,
-                                               tidnode4,
-                                               psignaturenode5,
+                                       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 = pclosuredeclnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction210
+private class ReduceAction756
        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 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 = pclosuredeclnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction211
+private class ReduceAction757
        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 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 tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var tassignnode3 = nodearraylist2
+                                       assert tassignnode3 isa nullable TAssign
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       var pexprnode1: nullable ANamedargExpr = new ANamedargExpr.init_anamedargexpr(
+                                               tidnode2,
+                                               tassignnode3,
+                                               pexprnode4
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction212
+private class ReduceAction758
        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 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 tkwselfnode2 = nodearraylist1
+                                       assert tkwselfnode2 isa nullable TKwself
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
+                                               tkwselfnode2,
+                                               pannotationsnode3
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction213
+private class ReduceAction759
        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
+                                       var tkwtruenode2 = nodearraylist1
+                                       assert tkwtruenode2 isa nullable TKwtrue
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable ATrueExpr = new ATrueExpr.init_atrueexpr(
+                                               tkwtruenode2,
+                                               pannotationsnode3
                                        )
-                                       node_list = pclosuredeclnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction214
+private class ReduceAction760
        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
+                                       var tkwfalsenode2 = nodearraylist1
+                                       assert tkwfalsenode2 isa nullable TKwfalse
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
+                                               tkwfalsenode2,
+                                               pannotationsnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction215
+private class ReduceAction761
        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 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
+                                       var tkwnullnode2 = nodearraylist1
+                                       assert tkwnullnode2 isa nullable TKwnull
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable ANullExpr = new ANullExpr.init_anullexpr(
+                                               tkwnullnode2,
+                                               pannotationsnode3
                                        )
-                                       node_list = pexterncallsnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction216
+private class ReduceAction762
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tintegernode2 = nodearraylist1
+                                       assert tintegernode2 isa nullable TInteger
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AIntegerExpr = new AIntegerExpr.init_aintegerexpr(
+                                               tintegernode2,
+                                               pannotationsnode3
+                                       )
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction763
        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
+                                       var tfloatnode2 = nodearraylist1
+                                       assert tfloatnode2 isa nullable TFloat
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
+                                               tfloatnode2,
+                                               pannotationsnode3
                                        )
-                                       node_list = pexterncallsnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction217
+private class ReduceAction764
        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 tcharnode2 = nodearraylist1
+                                       assert tcharnode2 isa nullable TChar
+                                       var pannotationsnode3 = nodearraylist2
+                                       assert pannotationsnode3 isa nullable AAnnotations
+                                       var pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
+                                               tcharnode2,
+                                               pannotationsnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction218
+private class ReduceAction765
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexterncallnode1 = nodearraylist1
-                                       node_list = pexterncallnode1
+                                       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
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction220
+private class ReduceAction767
        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 tkwsupernode2 = nodearraylist1
-                                       assert tkwsupernode2 isa nullable TKwsuper
-                                       var pexterncallnode1: nullable ASuperExternCall = new ASuperExternCall.init_asuperexterncall(
-                                               tkwsupernode2
+                                       var tkwmethnode2 = nodearraylist1
+                                       assert tkwmethnode2 isa nullable TKwmeth
+                                       var psignaturenode3 = nodearraylist2
+                                       assert psignaturenode3 isa nullable ASignature
+                                       var tkwdonode4 = nodearraylist3
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode7 = new Array[Object]
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       if pexprnode6 != null then
+                                               listnode7.add(pexprnode6)
+                                       end
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode7,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       var pexprnode1: nullable ALambdaExpr = new ALambdaExpr.init_alambdaexpr(
+                                               tkwmethnode2,
+                                               psignaturenode3,
+                                               tkwdonode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction221
+private class ReduceAction768
        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 pmethidnode2 = nodearraylist1
-                                       assert pmethidnode2 isa nullable AMethid
-                                       var pexterncallnode1: nullable ALocalPropExternCall = new ALocalPropExternCall.init_alocalpropexterncall(
-                                               pmethidnode2
+                                       var tkwmethnode2 = nodearraylist1
+                                       assert tkwmethnode2 isa nullable TKwmeth
+                                       var psignaturenode3 = nodearraylist2
+                                       assert psignaturenode3 isa nullable ASignature
+                                       var tkwdonode4 = nodearraylist3
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var listnode8 = new Array[Object]
+                                       var pexprnode6 = nodearraylist5
+                                       assert pexprnode6 isa nullable AExpr
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       if pexprnode6 != null then
+                                               listnode8.add(pexprnode6)
+                                       end
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var pexprnode5: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
+                                               listnode8,
+                                               null
                                        )
-                                       node_list = pexterncallnode1
+                                       var pexprnode1: nullable ALambdaExpr = new ALambdaExpr.init_alambdaexpr(
+                                               tkwmethnode2,
+                                               psignaturenode3,
+                                               tkwdonode4,
+                                               pexprnode5
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction222
+private class ReduceAction769
        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 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 tkwmethnode2 = nodearraylist1
+                                       assert tkwmethnode2 isa nullable TKwmeth
+                                       var psignaturenode3 = nodearraylist2
+                                       assert psignaturenode3 isa nullable ASignature
+                                       var tkwdonode4 = nodearraylist3
+                                       assert tkwdonode4 isa nullable TKwdo
+                                       var pexprnode5 = nodearraylist5
+                                       assert pexprnode5 isa nullable AExpr
+                                       var pexprnode1: nullable ALambdaExpr = new ALambdaExpr.init_alambdaexpr(
+                                               tkwmethnode2,
+                                               psignaturenode3,
+                                               tkwdonode4,
+                                               pexprnode5
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction223
+private class ReduceAction771
        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 tclassidnode2 = nodearraylist1
-                                       assert tclassidnode2 isa nullable TClassid
-                                       var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
-                                               tclassidnode2
+                                       var tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tdotdotnode4 = nodearraylist5
+                                       assert tdotdotnode4 isa nullable TDotdot
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tcbranode6 = nodearraylist9
+                                       assert tcbranode6 isa nullable TCbra
+                                       var pannotationsnode7 = nodearraylist10
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable ACrangeExpr = new ACrangeExpr.init_acrangeexpr(
+                                               tobranode2,
+                                               pexprnode3,
+                                               tdotdotnode4,
+                                               pexprnode5,
+                                               tcbranode6,
+                                               pannotationsnode7
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction224
+private class ReduceAction772
        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
@@ -7953,46 +30215,65 @@ private class ReduceAction224
                                        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 tobranode2 = nodearraylist1
+                                       assert tobranode2 isa nullable TObra
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tdotdotnode4 = nodearraylist5
+                                       assert tdotdotnode4 isa nullable TDotdot
+                                       var pexprnode5 = nodearraylist7
+                                       assert pexprnode5 isa nullable AExpr
+                                       var tobranode6 = nodearraylist9
+                                       assert tobranode6 isa nullable TObra
+                                       var pannotationsnode7 = nodearraylist10
+                                       assert pannotationsnode7 isa nullable AAnnotations
+                                       var pexprnode1: nullable AOrangeExpr = new AOrangeExpr.init_aorangeexpr(
+                                               tobranode2,
+                                               pexprnode3,
+                                               tdotdotnode4,
+                                               pexprnode5,
+                                               tobranode6,
+                                               pannotationsnode7
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction225
+private class ReduceAction773
        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 tkwnullablenode4 = nodearraylist4
-                                       assert tkwnullablenode4 isa nullable TKwnullable
-                                       var pexterncallnode1: nullable AAsNullableExternCall = new AAsNullableExternCall.init_aasnullableexterncall(
-                                               ptypenode2,
-                                               tkwasnode3,
-                                               tkwnullablenode4
+                                       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 = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction226
+private class ReduceAction774
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8003,338 +30284,446 @@ private class ReduceAction226
                                        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 toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var pexprnode3 = nodearraylist3
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tcparnode4 = nodearraylist5
+                                       assert tcparnode4 isa nullable TCpar
+                                       var pannotationsnode5 = nodearraylist6
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pexprnode1: nullable AParExpr = new AParExpr.init_aparexpr(
+                                               toparnode2,
+                                               pexprnode3,
+                                               tcparnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = pexterncallnode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction227
+private class ReduceAction776
        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 ptypenode1: nullable AType = new AType.init_atype(
-                                               null,
-                                               tclassidnode3,
+                                       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 AManyExpr = new AManyExpr.init_amanyexpr(
                                                listnode4
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction777
+       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 = nodearraylist3
+                                       node_list = pexprnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction778
+       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 ReduceAction779
+       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 pexprnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction228
+private class ReduceAction781
        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
-                                       )
-                                       node_list = ptypenode1
+                                       var pexprnode1 = nodearraylist1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction229
+private class ReduceAction783
        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 ptypenode1: nullable AType = new AType.init_atype(
+                                       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 pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
+                                               tkwifnode2,
+                                               pexprnode3,
+                                               tkwthennode4,
+                                               pexprnode5,
                                                null,
-                                               tclassidnode3,
-                                               listnode5
+                                               null
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction230
+private class ReduceAction784
        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 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
+                                       var listnode4 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       listnode4 = concat(listnode4, listnode2)
+                                       if pexprnode3 != null then
+                                               listnode4.add(pexprnode3)
+                                       end
+                                       var pannotationsnode5 = nodearraylist3
+                                       assert pannotationsnode5 isa nullable AAnnotations
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode4,
+                                               pannotationsnode5
                                        )
-                                       node_list = ptypenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction231
+private class ReduceAction785
        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)
+                                       var listnode5 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       var listnode3 = nodearraylist2
+                                       assert listnode3 isa Array[Object]
+                                       var pexprnode4 = nodearraylist3
+                                       assert pexprnode4 isa nullable AExpr
+                                       listnode5 = concat(listnode5, listnode2)
+                                       listnode5 = concat(listnode5, listnode3)
+                                       if pexprnode4 != null then
+                                               listnode5.add(pexprnode4)
                                        end
-                                       node_list = listnode2
+                                       var pannotationsnode6 = nodearraylist4
+                                       assert pannotationsnode6 isa nullable AAnnotations
+                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
+                                               listnode5,
+                                               pannotationsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction232
+private class ReduceAction786
        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 ptypenode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if ptypenode1 != null then
-                                               listnode3.add(ptypenode1)
+                                       var pexprnode1 = nodearraylist1
+                                       var pexprnode2 = nodearraylist3
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
                                        end
-                                       listnode3 = concat(listnode3, listnode2)
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction233
+private class ReduceAction787
        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 ptypenode1 = nodearraylist3
-                                       node_list = ptypenode1
+                                       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 ReduceAction235
+private class ReduceAction788
        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 tstartstringnode2 = nodearraylist1
+                                       assert tstartstringnode2 isa nullable TStartString
+                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
+                                               tstartstringnode2
+                                       )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction236
+private class ReduceAction791
        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 tkwendnode3 = nodearraylist2
-                                       assert tkwendnode3 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode2,
-                                               tkwendnode3
+                                       var tmidstringnode2 = nodearraylist1
+                                       assert tmidstringnode2 isa nullable TMidString
+                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
+                                               tmidstringnode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction237
+private class ReduceAction792
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        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 tendstringnode2 = nodearraylist1
+                                       assert tendstringnode2 isa nullable TEndString
+                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
+                                               tendstringnode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction238
+private class ReduceAction793
        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
+                                       var listnode6 = new Array[Object]
+                                       var tatnode3 = nodearraylist1
+                                       assert tatnode3 isa nullable TAt
+                                       var pannotationnode5 = nodearraylist2
+                                       assert pannotationnode5 isa nullable AAnnotation
+                                       if pannotationnode5 != null then
+                                               listnode6.add(pannotationnode5)
+                                       end
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               tatnode3,
+                                               null,
+                                               listnode6,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction239
+private class ReduceAction794
        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 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 listnode6 = new Array[Object]
+                                       var tatnode3 = nodearraylist1
+                                       assert tatnode3 isa nullable TAt
+                                       var toparnode4 = nodearraylist2
+                                       assert toparnode4 isa nullable TOpar
+                                       var listnode5 = nodearraylist4
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tcparnode7 = nodearraylist6
+                                       assert tcparnode7 isa nullable TCpar
+                                       var pannotationsnode1: nullable AAnnotations = new AAnnotations.init_aannotations(
+                                               null,
+                                               tatnode3,
+                                               toparnode4,
+                                               listnode6,
+                                               tcparnode7,
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction240
+private class ReduceAction795
        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 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 = pexprnode1
+                                       var pannotationsnode1 = nodearraylist1
+                                       node_list = pannotationsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction241
+private class ReduceAction797
        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 listnode8 = new Array[Object]
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist1
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist2
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction242
+private class ReduceAction798
        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 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 listnode8 = new Array[Object]
+                                       var tkwpublicnode5 = nodearraylist1
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist4
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction243
+private class ReduceAction799
        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 tkwendnode4 = nodearraylist3
-                                       assert tkwendnode4 isa nullable TKwend
-                                       var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3,
-                                               tkwendnode4
+                                       var listnode8 = new Array[Object]
+                                       var tkwprivatenode5 = nodearraylist1
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist4
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction244
+private class ReduceAction800
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8343,680 +30732,1059 @@ private class ReduceAction244
                                        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 listnode8 = new Array[Object]
+                                       var tkwprotectednode5 = nodearraylist1
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist4
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction248
+private class ReduceAction801
        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 tkwreturnnode2 = nodearraylist1
-                                       assert tkwreturnnode2 isa nullable TKwreturn
-                                       var pexprnode1: nullable AReturnExpr = new AReturnExpr.init_areturnexpr(
-                                               tkwreturnnode2,
-                                               null
+                                       var listnode8 = new Array[Object]
+                                       var tkwintrudenode5 = nodearraylist1
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist4
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction249
+private class ReduceAction802
        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 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 listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist3
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction250
+private class ReduceAction803
        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 pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
+                                       var listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                null,
-                                               null
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction251
+private class ReduceAction804
        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 plabelnode3 = nodearraylist2
-                                       assert plabelnode3 isa nullable ALabel
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
-                                               plabelnode3,
-                                               null
+                                       var listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction252
+private class ReduceAction805
        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 pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable ABreakExpr = new ABreakExpr.init_abreakexpr(
-                                               tkwbreaknode2,
+                                       var listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                null,
-                                               pexprnode4
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction253
+private class ReduceAction806
        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 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 listnode8 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction254
+private class ReduceAction807
        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 tkwabortnode2 = nodearraylist1
-                                       assert tkwabortnode2 isa nullable TKwabort
-                                       var pexprnode1: nullable AAbortExpr = new AAbortExpr.init_aabortexpr(
-                                               tkwabortnode2
+                                       var listnode9 = new Array[Object]
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist1
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist2
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist4
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist6
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction255
+private class ReduceAction808
        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 pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
+                                       var listnode9 = new Array[Object]
+                                       var tkwpublicnode5 = nodearraylist1
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist4
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                null,
-                                               null
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction256
+private class ReduceAction809
        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 listnode9 = new Array[Object]
+                                       var tkwprivatenode5 = nodearraylist1
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist4
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction257
+private class ReduceAction810
        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 pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
+                                       var listnode9 = new Array[Object]
+                                       var tkwprotectednode5 = nodearraylist1
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist4
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                null,
-                                               pexprnode4
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction258
+private class ReduceAction811
        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 pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
-                                               tkwcontinuenode2,
-                                               plabelnode3,
-                                               pexprnode4
+                                       var listnode9 = new Array[Object]
+                                       var tkwintrudenode5 = nodearraylist1
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist4
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction265
+private class ReduceAction812
        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 listnode6 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist3
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist5
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist7
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction266
+private class ReduceAction813
        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 listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction267
+private class ReduceAction814
        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 listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction268
+private class ReduceAction815
        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 listnode5 = new Array[Object]
-                                       var listnode7 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
-                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode7
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction269
+private class ReduceAction816
        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 listnode5 = new Array[Object]
-                                       var tkwsupernode3 = nodearraylist1
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
                                                null,
-                                               tkwsupernode3,
-                                               listnode5
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction270
+private class ReduceAction817
        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 listnode5 = new Array[Object]
-                                       var pqualifiednode2 = nodearraylist1
-                                       assert pqualifiednode2 isa nullable AQualified
-                                       var tkwsupernode3 = nodearraylist2
-                                       assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
-                                               pqualifiednode2,
-                                               tkwsupernode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode2 = new Array[Object]
+                                       var pannotationnode1 = nodearraylist1
+                                       if pannotationnode1 != null then
+                                               listnode2.add(pannotationnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction271
+private class ReduceAction818
        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 tkwinitnode3 = nodearraylist4
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode3 = new Array[Object]
+                                       var pannotationnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       if pannotationnode1 != null then
+                                               listnode3.add(pannotationnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction272
+private class ReduceAction839
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
+                                       var listnode9 = new Array[Object]
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       var tkwinitnode3 = nodearraylist1
-                                       assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
-                                               pexprnode2,
-                                               tkwinitnode3,
-                                               listnode5
+                                       var patidnode6 = nodearraylist1
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist2
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction273
+private class ReduceAction840
        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 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
+                                       var listnode9 = new Array[Object]
+                                       var tkwpublicnode5 = nodearraylist1
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
                                        )
-                                       node_list = plabelnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction274
+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 listnode2 = new Array[Object]
-                                       var pclosuredefnode1 = nodearraylist1
-                                       if pclosuredefnode1 != null then
-                                               listnode2.add(pclosuredefnode1)
+                                       var listnode9 = new Array[Object]
+                                       var tkwprivatenode5 = nodearraylist1
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
                                        end
-                                       node_list = listnode2
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction275
+private class ReduceAction842
        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 pclosuredefnode1 = nodearraylist1
-                                       var listnode2 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       if pclosuredefnode1 != null then
-                                               listnode3.add(pclosuredefnode1)
+                                       var listnode9 = new Array[Object]
+                                       var tkwprotectednode5 = nodearraylist1
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
                                        end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction276
+private class ReduceAction843
        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 = nodearraylist4
-                                       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 listnode9 = new Array[Object]
+                                       var tkwintrudenode5 = nodearraylist1
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist4
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction277
+private class ReduceAction844
        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 = nodearraylist7
-                                       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 listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist3
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction278
+private class ReduceAction845
        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 listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist5
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction279
+private class ReduceAction846
        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 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               tkwdonode5,
-                                               pexprnode6,
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist5
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction280
+private class ReduceAction847
        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,
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist5
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction281
+private class ReduceAction848
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9026,128 +31794,113 @@ private class ReduceAction281
                                        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 pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
-                                               pexprnode7,
+                                       var listnode9 = new Array[Object]
+                                       var tkwredefnode3 = nodearraylist1
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pexprnode8 = nodearraylist5
+                                       assert pexprnode8 isa nullable AExpr
+                                       if pexprnode8 != null then
+                                               listnode9.add(pexprnode8)
+                                       end
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               null,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction282
+private class ReduceAction850
        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 pexprnode6 = nodearraylist5
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode4,
-                                               null,
-                                               pexprnode6,
-                                               null
-                                       )
-                                       node_list = pclosuredefnode1
+                                       var pannotationnode1 = nodearraylist3
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction283
+private class ReduceAction851
        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 pexprnode7 = nodearraylist8
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
                                                null,
-                                               pexprnode7,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction284
+private class ReduceAction852
        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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
                                                null,
-                                               pexprnode7,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction285
+private class ReduceAction853
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9157,100 +31910,99 @@ private class ReduceAction285
                                        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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction286
+private class ReduceAction854
        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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction287
+private class ReduceAction855
        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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction288
+private class ReduceAction856
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9259,215 +32011,286 @@ private class ReduceAction288
                                        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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
                                                null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction289
+private class ReduceAction857
        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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
                                                null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction290
+private class ReduceAction858
        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 pclosuredefnode1: nullable AClosureDef = new AClosureDef.init_aclosuredef(
-                                               tbangnode2,
-                                               pclosureidnode3,
-                                               listnode5,
-                                               tkwdonode6,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
                                                null,
                                                null
                                        )
-                                       node_list = pclosuredefnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction291
-       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
-                                       )
-                                       node_list = pclosureidnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction292
+private class ReduceAction859
        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 pclosureidnode1: nullable ABreakClosureId = new ABreakClosureId.init_abreakclosureid(
-                                               tkwbreaknode2
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               null
                                        )
-                                       node_list = pclosureidnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction293
+private class ReduceAction860
        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 pexprnode4 = nodearraylist1
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AContinueExpr = new AContinueExpr.init_acontinueexpr(
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
                                                null,
+                                               listnode8,
                                                null,
-                                               pexprnode4
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction294
+private class ReduceAction861
        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 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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
+                                       )
+                                       var patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist3
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
                                                null,
+                                               listnode8,
                                                null,
-                                               null
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction295
+private class ReduceAction862
        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 ptypenode4 = nodearraylist3
-                                       assert ptypenode4 isa nullable AType
-                                       var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
-                                               tkwvarnode2,
-                                               tidnode3,
-                                               ptypenode4,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
                                                null,
-                                               null
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction296
+private class ReduceAction863
        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,
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
                                                null,
-                                               tassignnode5,
-                                               pexprnode6
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction297
+private class ReduceAction864
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9478,28 +32301,33 @@ private class ReduceAction297
                                        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
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction298
+private class ReduceAction865
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9510,206 +32338,276 @@ private class ReduceAction298
                                        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 listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist5
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction299
+private class ReduceAction866
        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 listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var tassignnode4 = nodearraylist2
-                                       assert tassignnode4 isa nullable TAssign
-                                       var pexprnode5 = nodearraylist3
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrAssignExpr = new AAttrAssignExpr.init_aattrassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               tassignnode4,
-                                               pexprnode5
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist4
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction300
+private class ReduceAction867
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist4
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tassignnode6 = nodearraylist6
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                       var nodearraylist7 = p.pop
+                                       var 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 tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction301
+private class ReduceAction868
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var tassignnode6 = nodearraylist3
-                                       assert tassignnode6 isa nullable TAssign
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction302
+private class ReduceAction869
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tassignnode5 = nodearraylist3
-                                       assert tassignnode5 isa nullable TAssign
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ABraAssignExpr = new ABraAssignExpr.init_abraassignexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction303
+private class ReduceAction870
        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 pexprnode5 = nodearraylist6
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AAttrReassignExpr = new AAttrReassignExpr.init_aattrreassignexpr(
-                                               pexprnode2,
-                                               tattridnode3,
-                                               passignopnode4,
-                                               pexprnode5
+                                       var listnode8 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var pannotationsnode10 = nodearraylist6
+                                       assert pannotationsnode10 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode8,
+                                               null,
+                                               pannotationsnode10
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction304
+private class ReduceAction871
        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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       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 patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist3
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist5
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist6
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction305
+private class ReduceAction872
        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
@@ -9717,168 +32615,319 @@ private class ReduceAction305
                                        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
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist5
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var passignopnode6 = nodearraylist6
-                                       assert passignopnode6 isa nullable AAssignOp
-                                       var pexprnode7 = nodearraylist7
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction306
+private class ReduceAction873
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tidnode3 = nodearraylist1
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
-                                       var passignopnode6 = nodearraylist3
-                                       assert passignopnode6 isa nullable AAssignOp
-                                       var pexprnode7 = nodearraylist4
-                                       assert pexprnode7 isa nullable AExpr
-                                       var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
-                                               pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction307
+private class ReduceAction874
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var passignopnode5 = nodearraylist3
-                                       assert passignopnode5 isa nullable AAssignOp
-                                       var pexprnode6 = nodearraylist4
-                                       assert pexprnode6 isa nullable AExpr
-                                       var pexprnode1: nullable ABraReassignExpr = new ABraReassignExpr.init_abrareassignexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction308
+private class ReduceAction875
        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 tpluseqnode2 = nodearraylist1
-                                       assert tpluseqnode2 isa nullable TPluseq
-                                       var passignopnode1: nullable APlusAssignOp = new APlusAssignOp.init_aplusassignop(
-                                               tpluseqnode2
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
                                        )
-                                       node_list = passignopnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction309
+private class ReduceAction876
        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 tminuseqnode2 = nodearraylist1
-                                       assert tminuseqnode2 isa nullable TMinuseq
-                                       var passignopnode1: nullable AMinusAssignOp = new AMinusAssignOp.init_aminusassignop(
-                                               tminuseqnode2
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = passignopnode1
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist4
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist7
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction310
+private class ReduceAction877
        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 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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction311
+private class ReduceAction878
        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 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,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction312
+private class ReduceAction879
        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
@@ -9887,52 +32936,88 @@ private class ReduceAction312
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwifnode2 = nodearraylist1
-                                       assert tkwifnode2 isa nullable TKwif
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode4 = nodearraylist6
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode5 = nodearraylist8
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
-                                               pexprnode4,
-                                               pexprnode5
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction313
+private class ReduceAction880
        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 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,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction314
+private class ReduceAction881
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9945,56 +33030,93 @@ private class ReduceAction314
                                        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
-                                       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
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist3
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist5
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist6
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist7
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction315
+private class ReduceAction882
        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 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,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
                                                null,
-                                               pexprnode5
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction316
+private class ReduceAction883
        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
@@ -10002,70 +33124,142 @@ private class ReduceAction316
                                        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
-                                       assert pexprnode5 isa nullable AExpr
-                                       var pexprnode1: nullable AIfExpr = new AIfExpr.init_aifexpr(
-                                               tkwifnode2,
-                                               pexprnode3,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
                                                null,
-                                               pexprnode5
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction319
+private class ReduceAction884
        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 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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction320
+private class ReduceAction885
        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 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
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist5
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist7
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist8
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist9
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction321
+private class ReduceAction886
        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
@@ -10073,64 +33267,95 @@ private class ReduceAction321
                                        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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist4
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist7
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist8
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction322
+private class ReduceAction887
        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 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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction323
+private class ReduceAction888
        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
@@ -10142,33 +33367,42 @@ private class ReduceAction323
                                        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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction324
+private class ReduceAction889
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10184,38 +33418,46 @@ private class ReduceAction324
                                        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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction325
+private class ReduceAction890
        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
@@ -10227,215 +33469,269 @@ private class ReduceAction325
                                        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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var toparnode7 = nodearraylist6
+                                       assert toparnode7 isa nullable TOpar
+                                       var listnode8 = nodearraylist8
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var tcparnode10 = nodearraylist9
+                                       assert tcparnode10 isa nullable TCpar
+                                       var pannotationsnode11 = nodearraylist10
+                                       assert pannotationsnode11 isa nullable AAnnotations
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               toparnode7,
+                                               listnode9,
+                                               tcparnode10,
+                                               pannotationsnode11
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction326
+private class ReduceAction891
        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,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist2
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist3
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction327
+private class ReduceAction892
        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 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 AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwpublicnode5 = nodearraylist2
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist5
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
                                                null,
-                                               pexprnode4,
-                                               pexprnode5
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction328
+private class ReduceAction893
        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 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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprivatenode5 = nodearraylist2
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist5
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction329
+private class ReduceAction894
        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 tkwassertnode2 = nodearraylist1
-                                       assert tkwassertnode2 isa nullable TKwassert
-                                       var pexprnode4 = nodearraylist2
-                                       assert pexprnode4 isa nullable AExpr
-                                       var pexprnode1: nullable AAssertExpr = new AAssertExpr.init_aassertexpr(
-                                               tkwassertnode2,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwprotectednode5 = nodearraylist2
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist5
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
                                                null,
-                                               pexprnode4,
                                                null
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction330
+private class ReduceAction895
        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 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,
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwintrudenode5 = nodearraylist2
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
+                                       )
+                                       var patidnode6 = nodearraylist4
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist5
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
                                                null
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction331
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var tidnode1 = nodearraylist1
-                                       node_list = tidnode1
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction335
+private class ReduceAction896
        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 pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       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 pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
-                                               listnode4,
-                                               listnode6
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist3
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist4
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction337
+private class ReduceAction897
        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
@@ -10443,220 +33739,336 @@ private class ReduceAction337
                                        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 listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwpublicnode5 = nodearraylist3
+                                       assert tkwpublicnode5 isa nullable TKwpublic
+                                       var pvisibilitynode4: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                               tkwpublicnode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction339
+private class ReduceAction898
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprivatenode5 = nodearraylist3
+                                       assert tkwprivatenode5 isa nullable TKwprivate
+                                       var pvisibilitynode4: nullable APrivateVisibility = new APrivateVisibility.init_aprivatevisibility(
+                                               tkwprivatenode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction340
+private class ReduceAction899
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwprotectednode5 = nodearraylist3
+                                       assert tkwprotectednode5 isa nullable TKwprotected
+                                       var pvisibilitynode4: nullable AProtectedVisibility = new AProtectedVisibility.init_aprotectedvisibility(
+                                               tkwprotectednode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction341
+private class ReduceAction900
        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 pexprnode3 = nodearraylist5
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var listnode9 = new Array[Object]
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var tkwintrudenode5 = nodearraylist3
+                                       assert tkwintrudenode5 isa nullable TKwintrude
+                                       var pvisibilitynode4: nullable AIntrudeVisibility = new AIntrudeVisibility.init_aintrudevisibility(
+                                               tkwintrudenode5
                                        )
-                                       node_list = pexprnode1
+                                       var patidnode6 = nodearraylist5
+                                       assert patidnode6 isa nullable AAtid
+                                       var listnode8 = nodearraylist6
+                                       assert listnode8 isa Array[Object]
+                                       listnode9 = concat(listnode9, listnode8)
+                                       var pannotationnode1: nullable AAnnotation = new AAnnotation.init_aannotation(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               patidnode6,
+                                               null,
+                                               listnode9,
+                                               null,
+                                               null
+                                       )
+                                       node_list = pannotationnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction343
+private class ReduceAction901
        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 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 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 = pexprnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction345
+private class ReduceAction902
        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 AEqExpr = new AEqExpr.init_aeqexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 = pexprnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction346
+private class ReduceAction903
        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 AEeExpr = new AEeExpr.init_aeeexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 = pexprnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction347
+private class ReduceAction904
        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 pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 = pexprnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction348
+private class ReduceAction905
        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 ALtExpr = new ALtExpr.init_altexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       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 = pexprnode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction349
+private class ReduceAction909
        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 ALeExpr = new ALeExpr.init_aleexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var pexprnode1: nullable ATypeExpr = new ATypeExpr.init_atypeexpr(
+                                               ptypenode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction350
+private class ReduceAction912
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10667,143 +34079,122 @@ private class ReduceAction350
                                        var nodearraylist1 = p.pop
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+                                       var pmethidnode3 = nodearraylist4
+                                       assert pmethidnode3 isa nullable AMethid
+                                       var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pmethidnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction351
+private class ReduceAction913
        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
+                                       var pexprnode3 = nodearraylist1
                                        assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+                                       var tquestnode4 = nodearraylist2
+                                       assert tquestnode4 isa nullable TQuest
+                                       var pexprnode2: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode3,
+                                               tquestnode4
+                                       )
+                                       var pmethidnode5 = nodearraylist5
+                                       assert pmethidnode5 isa nullable AMethid
+                                       var pexprnode1: nullable AMethidExpr = new AMethidExpr.init_amethidexpr(
                                                pexprnode2,
-                                               pexprnode3
+                                               pmethidnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction352
+private class ReduceAction914
        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(
+                                       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,
-                                               pexprnode3
+                                               pmethidnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction353
+private class ReduceAction915
        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 AGgExpr = new AGgExpr.init_aggexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var pannotationsnode2 = nodearraylist1
+                                       assert pannotationsnode2 isa nullable AAnnotations
+                                       var pexprnode1: nullable AAtExpr = new AAtExpr.init_aatexpr(
+                                               pannotationsnode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction354
+private class ReduceAction916
        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 tidnode2 = nodearraylist1
+                                       assert tidnode2 isa nullable TId
+                                       var patidnode1: nullable AIdAtid = new AIdAtid.init_aidatid(
+                                               tidnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction355
+private class ReduceAction917
        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 ptypenode3 = nodearraylist4
-                                       assert ptypenode3 isa nullable AType
-                                       var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
-                                               pexprnode2,
-                                               ptypenode3
+                                       var tkwexternnode2 = nodearraylist1
+                                       assert tkwexternnode2 isa nullable TKwextern
+                                       var patidnode1: nullable AKwexternAtid = new AKwexternAtid.init_akwexternatid(
+                                               tkwexternnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction357
+private class ReduceAction918
        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(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var tkwabstractnode2 = nodearraylist1
+                                       assert tkwabstractnode2 isa nullable TKwabstract
+                                       var patidnode1: nullable AKwabstractAtid = new AKwabstractAtid.init_akwabstractatid(
+                                               tkwabstractnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = patidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction358
+private class ReduceAction919
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10812,102 +34203,104 @@ private class ReduceAction358
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var listnode4 = 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 pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction360
+private class ReduceAction920
        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 AStarExpr = new AStarExpr.init_astarexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var listnode3 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var pexprsnode1: nullable AParExprs = new AParExprs.init_aparexprs(
+                                               toparnode2,
+                                               listnode3,
+                                               tcparnode4
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction361
+private class ReduceAction922
        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
-                                       var pexprnode3 = nodearraylist4
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
-                                               pexprnode2,
-                                               pexprnode3
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction362
+private class ReduceAction924
        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(
-                                               pexprnode2,
-                                               pexprnode3
+                                       var listnode2 = new Array[Object]
+                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode2
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction364
+private class ReduceAction925
        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 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 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 tcbranode5 = nodearraylist4
+                                       assert tcbranode5 isa nullable TCbra
+                                       var pexprsnode1: nullable ABraExprs = new ABraExprs.init_abraexprs(
+                                               tobranode2,
+                                               listnode4,
+                                               tcbranode5
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction365
+private class ReduceAction927
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10915,19 +34308,19 @@ private class ReduceAction365
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwoncenode2 = nodearraylist1
-                                       assert tkwoncenode2 isa nullable TKwonce
-                                       var pexprnode3 = nodearraylist3
-                                       assert pexprnode3 isa nullable AExpr
-                                       var pexprnode1: nullable AOnceExpr = new AOnceExpr.init_aonceexpr(
-                                               tkwoncenode2,
-                                               pexprnode3
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode3 = new Array[Object]
+                                       var pexprnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist3
+                                       assert listnode2 isa Array[Object]
+                                       if pexprnode1 != null then
+                                               listnode3.add(pexprnode1)
+                                       end
+                                       listnode3 = concat(listnode3, listnode2)
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction367
+private class ReduceAction928
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10936,25 +34329,12 @@ private class ReduceAction367
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var listnode5 = nodearraylist4
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               null,
-                                               listnode6
-                                       )
+                                       var pexprnode1 = nodearraylist3
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction368
+private class ReduceAction929
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10964,44 +34344,44 @@ private class ReduceAction368
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist5
-                                       assert tattridnode4 isa nullable TAttrid
-                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
-                                               tkwissetnode2,
-                                               pexprnode3,
-                                               tattridnode4
-                                       )
-                                       node_list = pexprnode1
+                                       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 ReduceAction930
+       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 ReduceAction369
+private class ReduceAction931
        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
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode2 = new Array[Object]
+                                       var tidnode1 = nodearraylist1
+                                       if tidnode1 != null then
+                                               listnode2.add(tidnode1)
+                                       end
+                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction370
+private class ReduceAction932
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11010,37 +34390,37 @@ private class ReduceAction370
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var tattridnode3 = nodearraylist4
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
-                                       )
-                                       node_list = pexprnode1
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var tidnode2 = nodearraylist4
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if tidnode2 != null then
+                                               listnode3.add(tidnode2)
+                                       end
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction371
+private class ReduceAction933
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
-                                       var tattridnode3 = nodearraylist1
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
-                                               pexprnode2,
-                                               tattridnode3
+                                       var listnode3 = new Array[Object]
+                                       var tidnode4 = nodearraylist1
+                                       assert tidnode4 isa nullable TId
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               null,
+                                               listnode3,
+                                               tidnode4
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction378
+private class ReduceAction934
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11048,630 +34428,481 @@ private class ReduceAction378
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var pexprnode2 = nodearraylist1
-                                       assert pexprnode2 isa nullable AExpr
-                                       var listnode3 = nodearraylist2
+                                       var listnode3 = nodearraylist1
                                        assert listnode3 isa Array[Object]
                                        listnode4 = concat(listnode4, listnode3)
-                                       var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
-                                               pexprnode2,
+                                       var tidnode5 = nodearraylist2
+                                       assert tidnode5 isa nullable TId
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               null,
                                                listnode4,
-                                               listnode5
+                                               tidnode5
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction379
+private class ReduceAction935
        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 listnode6 = new Array[Object]
-                                       var tkwnewnode2 = nodearraylist1
-                                       assert tkwnewnode2 isa nullable TKwnew
-                                       var ptypenode3 = nodearraylist3
-                                       assert ptypenode3 isa nullable AType
-                                       var tidnode4 = nodearraylist6
+                                       var listnode3 = new Array[Object]
+                                       var tquadnode2 = nodearraylist1
+                                       assert tquadnode2 isa nullable TQuad
+                                       var tidnode4 = nodearraylist3
                                        assert tidnode4 isa nullable TId
-                                       var listnode5 = nodearraylist7
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
-                                       var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
-                                               tkwnewnode2,
-                                               ptypenode3,
-                                               tidnode4,
-                                               listnode6
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               tquadnode2,
+                                               listnode3,
+                                               tidnode4
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction380
+private class ReduceAction936
        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 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
+                                       var listnode4 = new Array[Object]
+                                       var tquadnode2 = nodearraylist1
+                                       assert tquadnode2 isa nullable TQuad
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tidnode5 = nodearraylist4
+                                       assert tidnode5 isa nullable TId
+                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                               tquadnode2,
+                                               listnode4,
+                                               tidnode5
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pmodulenamenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction381
+private class ReduceAction937
        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 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
+                                       var listnode2 = new Array[Object]
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode2,
+                                               tclassidnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pqualifiednode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction382
+private class ReduceAction938
        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 pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               listnode3
+                                       var tclassidnode4 = nodearraylist2
+                                       assert tclassidnode4 isa nullable TClassid
+                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pqualifiednode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction383
+private class ReduceAction939
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tkwselfnode2 = nodearraylist1
-                                       assert tkwselfnode2 isa nullable TKwself
-                                       var pexprnode1: nullable ASelfExpr = new ASelfExpr.init_aselfexpr(
-                                               tkwselfnode2
+                                       var 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 = pexprnode1
+                                       node_list = pqualifiednode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction384
+private class ReduceAction941
        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
+                                       var tclassidnode3 = nodearraylist1
+                                       assert tclassidnode3 isa nullable TClassid
+                                       var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
+                                               null,
+                                               tclassidnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pqclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction385
+private class ReduceAction942
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tkwfalsenode2 = nodearraylist1
-                                       assert tkwfalsenode2 isa nullable TKwfalse
-                                       var pexprnode1: nullable AFalseExpr = new AFalseExpr.init_afalseexpr(
-                                               tkwfalsenode2
+                                       var listnode3 = new Array[Object]
+                                       var tclassidnode4 = nodearraylist1
+                                       assert tclassidnode4 isa nullable TClassid
+                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode3,
+                                               tclassidnode4
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction386
-       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
+                                       var tclassidnode5 = nodearraylist2
+                                       assert tclassidnode5 isa nullable TClassid
+                                       var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
+                                               pqualifiednode2,
+                                               tclassidnode5
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pqclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction387
+private class ReduceAction943
        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 tnumbernode2 = nodearraylist1
-                                       assert tnumbernode2 isa nullable TNumber
-                                       var pexprnode1: nullable AIntExpr = new AIntExpr.init_aintexpr(
-                                               tnumbernode2
+                                       var listnode4 = new Array[Object]
+                                       var listnode3 = nodearraylist1
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tclassidnode5 = nodearraylist2
+                                       assert tclassidnode5 isa nullable TClassid
+                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode4,
+                                               tclassidnode5
                                        )
-                                       node_list = pexprnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction388
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var tfloatnode2 = nodearraylist1
-                                       assert tfloatnode2 isa nullable TFloat
-                                       var pexprnode1: nullable AFloatExpr = new AFloatExpr.init_afloatexpr(
-                                               tfloatnode2
+                                       var tclassidnode6 = nodearraylist3
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
+                                               pqualifiednode2,
+                                               tclassidnode6
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pqclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction389
+private class ReduceAction944
        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 pexprnode1: nullable ACharExpr = new ACharExpr.init_acharexpr(
-                                               tcharnode2
+                                       var listnode4 = new Array[Object]
+                                       var listnode3 = nodearraylist1
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var pqualifiednode2: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode4,
+                                               null
                                        )
-                                       node_list = pexprnode1
+                                       var tclassidnode6 = nodearraylist2
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqclassidnode1: nullable AQclassid = new AQclassid.init_aqclassid(
+                                               pqualifiednode2,
+                                               tclassidnode6
+                                       )
+                                       node_list = pqclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction390
+private class ReduceAction945
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tstringnode2 = nodearraylist1
-                                       assert tstringnode2 isa nullable TString
-                                       var pexprnode1: nullable AStringExpr = new AStringExpr.init_astringexpr(
-                                               tstringnode2
-                                       )
-                                       node_list = pexprnode1
+                                       var pmethidnode1 = nodearraylist1
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction392
+private class ReduceAction946
        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 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
-                                       )
-                                       node_list = pexprnode1
+                                       var pmethidnode1 = nodearraylist2
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction393
+private class ReduceAction947
        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 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
+                                       var pmethidnode1 = nodearraylist3
+                                       node_list = pmethidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction394
+private class ReduceAction949
        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
-                                       )
-                                       node_list = pexprnode1
+                                       var tidnode1 = nodearraylist1
+                                       node_list = tidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction395
+private class ReduceAction950
        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 listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       listnode4 = concat(listnode4, listnode2)
-                                       if pexprnode3 != null then
-                                               listnode4.add(pexprnode3)
-                                       end
-                                       var pexprnode1: nullable ASuperstringExpr = new ASuperstringExpr.init_asuperstringexpr(
-                                               listnode4
-                                       )
-                                       node_list = pexprnode1
+                                       var tclassidnode1 = nodearraylist1
+                                       node_list = tclassidnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction396
+private class ReduceAction952
        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 listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       var listnode3 = nodearraylist2
-                                       assert listnode3 isa Array[Object]
-                                       var pexprnode4 = nodearraylist3
-                                       assert pexprnode4 isa nullable AExpr
-                                       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
-                                       )
-                                       node_list = pexprnode1
+                                       var tkwendnode1 = nodearraylist1
+                                       node_list = tkwendnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction397
+private class ReduceAction953
        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 pexprnode1 = nodearraylist1
-                                       var pexprnode2 = nodearraylist3
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
-                                       end
-                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction398
+private class ReduceAction956
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var tstartstringnode2 = nodearraylist1
-                                       assert tstartstringnode2 isa nullable TStartString
-                                       var pexprnode1: nullable AStartStringExpr = new AStartStringExpr.init_astartstringexpr(
-                                               tstartstringnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist1
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction400
+private class ReduceAction957
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tmidstringnode2 = nodearraylist1
-                                       assert tmidstringnode2 isa nullable TMidString
-                                       var pexprnode1: nullable AMidStringExpr = new AMidStringExpr.init_amidstringexpr(
-                                               tmidstringnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode2 = nodearraylist2
+                                       assert listnode2 isa Array[Object]
+                                       listnode3 = concat(listnode3, listnode2)
+                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
+                                               listnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction401
+private class ReduceAction960
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var tendstringnode2 = nodearraylist1
-                                       assert tendstringnode2 isa nullable TEndString
-                                       var pexprnode1: nullable AEndStringExpr = new AEndStringExpr.init_aendstringexpr(
-                                               tendstringnode2
-                                       )
-                                       node_list = pexprnode1
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction402
+private class ReduceAction962
        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 pexprnode1 = nodearraylist3
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
+                                       node_list = null
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction403
+private class ReduceAction963
        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 pexprnode1 = nodearraylist3
-                                       var listnode2 = nodearraylist5
-                                       assert listnode2 isa Array[Object]
-                                       if pexprnode1 != null then
-                                               listnode3.add(pexprnode1)
-                                       end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pdocnode1 = nodearraylist2
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction405
+private class ReduceAction964
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode1 = nodearraylist3
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction408
+private class ReduceAction966
        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 pexprnode1 = nodearraylist1
-                                       if pexprnode1 != null then
-                                               listnode2.add(pexprnode1)
-                                       end
-                                       node_list = listnode2
+                                       var pdocnode1 = nodearraylist4
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction413
+private class ReduceAction968
        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 = nodearraylist3
-                                       node_list = pexprnode1
+                                       var pdocnode1 = nodearraylist1
+                                       node_list = pdocnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction414
+private class ReduceAction969
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var tidnode1 = nodearraylist1
-                                       if tidnode1 != null then
-                                               listnode2.add(tidnode1)
-                                       end
-                                       node_list = listnode2
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction415
+private class ReduceAction972
        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 listnode1 = nodearraylist1
-                                       assert listnode1 isa Array[Object]
-                                       var tidnode2 = nodearraylist5
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if tidnode2 != null then
-                                               listnode3.add(tidnode2)
-                                       end
-                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction416
+private class ReduceAction1511
        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 tidnode4 = nodearraylist1
-                                       assert tidnode4 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
-                                               null,
-                                               listnode3,
-                                               tidnode4
+                                       var tkwissetnode2 = nodearraylist1
+                                       assert tkwissetnode2 isa nullable TKwisset
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tattridnode4 = nodearraylist4
+                                       assert tattridnode4 isa nullable TAttrid
+                                       var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
+                                               tkwissetnode2,
+                                               pexprnode3,
+                                               tattridnode4
                                        )
-                                       node_list = pmodulenamenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction417
+private class ReduceAction1512
        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 listnode3 = nodearraylist1
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tidnode5 = nodearraylist2
-                                       assert tidnode5 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist3
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
                                                null,
-                                               listnode4,
-                                               tidnode5
+                                               tidnode6
                                        )
-                                       node_list = pmodulenamenode1
+                                       var pexprsnode7 = nodearraylist4
+                                       assert pexprsnode7 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction418
+private class ReduceAction1513
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11679,256 +34910,539 @@ private class ReduceAction418
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var tquadnode2 = nodearraylist1
-                                       assert tquadnode2 isa nullable TQuad
-                                       var tidnode4 = nodearraylist3
-                                       assert tidnode4 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
-                                               tquadnode2,
-                                               listnode3,
-                                               tidnode4
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var tidnode6 = nodearraylist3
+                                       assert tidnode6 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode6
                                        )
-                                       node_list = pmodulenamenode1
+                                       var listnode8 = new Array[Object]
+                                       var pexprsnode7: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode8
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode7
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction419
+private class ReduceAction1514
        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 tquadnode2 = nodearraylist1
-                                       assert tquadnode2 isa nullable TQuad
-                                       var listnode3 = nodearraylist3
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
-                                       var tidnode5 = nodearraylist4
-                                       assert tidnode5 isa nullable TId
-                                       var pmodulenamenode1: nullable AModuleName = new AModuleName.init_amodulename(
-                                               tquadnode2,
-                                               listnode4,
-                                               tidnode5
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist5
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
                                        )
-                                       node_list = pmodulenamenode1
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction420
+private class ReduceAction1515
        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 tclassidnode3 = nodearraylist1
-                                       assert tclassidnode3 isa nullable TClassid
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode2,
-                                               tclassidnode3
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode6 = new Array[Object]
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode8
                                        )
-                                       node_list = pqualifiednode1
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction421
+private class ReduceAction1516
        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 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
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist4
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
                                        )
-                                       node_list = pqualifiednode1
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist6
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction422
+private class ReduceAction1517
        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 listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var pqualifiednode1: nullable AQualified = new AQualified.init_aqualified(
-                                               listnode3,
-                                               null
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var tclassidnode8 = nodearraylist4
+                                       assert tclassidnode8 isa nullable TClassid
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               tclassidnode8
                                        )
-                                       node_list = pqualifiednode1
+                                       var tidnode9 = nodearraylist5
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction423
+private class ReduceAction1518
        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 tidnode1 = nodearraylist1
-                                       node_list = tidnode1
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var pexprsnode10 = nodearraylist5
+                                       assert pexprsnode10 isa nullable AExprs
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction424
+private class ReduceAction1519
        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 tclassidnode1 = nodearraylist1
-                                       node_list = tclassidnode1
+                                       var tampnode2 = nodearraylist1
+                                       assert tampnode2 isa nullable TAmp
+                                       var pexprnode3 = nodearraylist2
+                                       assert pexprnode3 isa nullable AExpr
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var pqualifiednode5: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode7,
+                                               null
+                                       )
+                                       var tidnode9 = nodearraylist4
+                                       assert tidnode9 isa nullable TId
+                                       var pqidnode4: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode5,
+                                               tidnode9
+                                       )
+                                       var listnode11 = new Array[Object]
+                                       var pexprsnode10: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode11
+                                       )
+                                       var pexprnode1: nullable ACallrefExpr = new ACallrefExpr.init_acallrefexpr(
+                                               tampnode2,
+                                               pexprnode3,
+                                               pqidnode4,
+                                               pexprsnode10
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction425
+private class ReduceAction1521
        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 = nodearraylist3
+                                       assert tattridnode3 isa nullable TAttrid
+                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                               pexprnode2,
+                                               tattridnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction427
+private class ReduceAction1522
        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 pdocnode1: nullable ADoc = new ADoc.init_adoc(
-                                               listnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist2
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
                                        )
-                                       node_list = pdocnode1
+                                       var pexprsnode6 = nodearraylist3
+                                       assert pexprsnode6 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction428
+private class ReduceAction1523
        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 = nodearraylist2
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var pdocnode1: nullable ADoc = new ADoc.init_adoc(
-                                               listnode3
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tidnode5 = nodearraylist2
+                                       assert tidnode5 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               null,
+                                               tidnode5
                                        )
-                                       node_list = pdocnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction430
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       node_list = null
+                                       var listnode7 = new Array[Object]
+                                       var pexprsnode6: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode7
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode6
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction431
+private class ReduceAction1524
        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 pdocnode1 = nodearraylist1
-                                       node_list = pdocnode1
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist2
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var pexprsnode8 = nodearraylist4
+                                       assert pexprsnode8 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction432
+private class ReduceAction1525
        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 listnode5 = new Array[Object]
+                                       var tclassidnode6 = nodearraylist2
+                                       assert tclassidnode6 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode5,
+                                               tclassidnode6
+                                       )
+                                       var tidnode7 = nodearraylist3
+                                       assert tidnode7 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode7
+                                       )
+                                       var listnode9 = new Array[Object]
+                                       var pexprsnode8: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode9
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode8
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction433
+private class ReduceAction1526
        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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist5
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction690
+private class ReduceAction1527
        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 tkwissetnode2 = nodearraylist1
-                                       assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3 = nodearraylist2
-                                       assert pexprnode3 isa nullable AExpr
-                                       var tattridnode4 = nodearraylist3
-                                       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 listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var tclassidnode7 = nodearraylist3
+                                       assert tclassidnode7 isa nullable TClassid
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               tclassidnode7
+                                       )
+                                       var tidnode8 = nodearraylist4
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
+                                               pexprnode2,
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction691
+private class ReduceAction1528
        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 = nodearraylist2
-                                       assert tattridnode3 isa nullable TAttrid
-                                       var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var pexprsnode9 = nodearraylist4
+                                       assert pexprsnode9 isa nullable AExprs
+                                       var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tattridnode3
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction692
+private class ReduceAction1529
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11936,26 +35450,36 @@ private class ReduceAction692
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode6 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
-                                       var tidnode3 = nodearraylist2
-                                       assert tidnode3 isa nullable TId
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
+                                       var listnode6 = new Array[Object]
+                                       var listnode5 = nodearraylist2
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
+                                       var pqualifiednode4: nullable AQualified = new AQualified.init_aqualified(
+                                               listnode6,
+                                               null
+                                       )
+                                       var tidnode8 = nodearraylist3
+                                       assert tidnode8 isa nullable TId
+                                       var pqidnode3: nullable AQid = new AQid.init_aqid(
+                                               pqualifiednode4,
+                                               tidnode8
+                                       )
+                                       var listnode10 = new Array[Object]
+                                       var pexprsnode9: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode10
+                                       )
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
-                                               tidnode3,
-                                               listnode5,
-                                               listnode6
+                                               pqidnode3,
+                                               pexprsnode9
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction695
+private class ReduceAction1532
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11963,97 +35487,105 @@ private class ReduceAction695
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
                                        var pexprnode2 = nodearraylist1
                                        assert pexprnode2 isa nullable AExpr
                                        var tkwinitnode3 = nodearraylist2
                                        assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist3
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable AInitExpr = new AInitExpr.init_ainitexpr(
                                                pexprnode2,
                                                tkwinitnode3,
-                                               listnode5
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction708
+private class ReduceAction1533
        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 = 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 ReduceAction709
+private class ReduceAction1560
        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 pexprnode1 = nodearraylist1
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction716
+private class ReduceAction1561
        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 pimportnode1 = nodearraylist1
-                                       if pimportnode1 != null then
-                                               listnode2.add(pimportnode1)
-                                       end
-                                       node_list = listnode2
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       var tquestnode3 = nodearraylist2
+                                       assert tquestnode3 isa nullable TQuest
+                                       var pexprnode1: nullable ASafeExpr = new ASafeExpr.init_asafeexpr(
+                                               pexprnode2,
+                                               tquestnode3
+                                       )
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction717
+private class ReduceAction1562
        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 pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
+                                       node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction718
+private class ReduceAction1746
        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 ReduceAction719
+private class ReduceAction1747
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12063,31 +35595,31 @@ private class ReduceAction719
                                        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 ReduceAction720
+private class ReduceAction1748
        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 ReduceAction721
+private class ReduceAction1749
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12097,31 +35629,31 @@ private class ReduceAction721
                                        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 ReduceAction722
+private class ReduceAction1750
        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 ReduceAction723
+private class ReduceAction1751
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12131,31 +35663,16 @@ private class ReduceAction723
                                        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 ReduceAction726
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var pformaldefnode1 = nodearraylist1
-                                       if pformaldefnode1 != null then
-                                               listnode2.add(pformaldefnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction727
+private class ReduceAction1753
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12174,22 +35691,26 @@ private class ReduceAction727
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction728
+private class ReduceAction1755
        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)
+                                       var listnode3 = new Array[Object]
+                                       var listnode1 = nodearraylist1
+                                       assert listnode1 isa Array[Object]
+                                       var ppropdefnode2 = nodearraylist2
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if ppropdefnode2 != null then
+                                               listnode3.add(ppropdefnode2)
                                        end
-                                       node_list = listnode2
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction729
+private class ReduceAction1757
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12199,31 +35720,31 @@ private class ReduceAction729
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pparamnode2 = nodearraylist2
+                                       var pannotationnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if pparamnode2 != null then
-                                               listnode3.add(pparamnode2)
+                                       if pannotationnode2 != null then
+                                               listnode3.add(pannotationnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction730
+private class ReduceAction1758
        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 ReduceAction731
+private class ReduceAction1759
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12233,16 +35754,16 @@ private class ReduceAction731
                                        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 ReduceAction732
+private class ReduceAction1760
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12257,7 +35778,7 @@ private class ReduceAction732
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction733
+private class ReduceAction1761
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12276,7 +35797,7 @@ private class ReduceAction733
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction735
+private class ReduceAction1763
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12295,7 +35816,7 @@ private class ReduceAction735
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction737
+private class ReduceAction1765
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12314,21 +35835,7 @@ private class ReduceAction737
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction738
-       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 ReduceAction739
+private class ReduceAction1771
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12346,7 +35853,7 @@ private class ReduceAction739
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction743
+private class ReduceAction1779
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12365,7 +35872,7 @@ private class ReduceAction743
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction744
+private class ReduceAction1780
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12380,7 +35887,7 @@ private class ReduceAction744
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction745
+private class ReduceAction1781
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -12399,37 +35906,3 @@ private class ReduceAction745
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction746
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var teolnode1 = nodearraylist1
-                                       if teolnode1 != null then
-                                               listnode2.add(teolnode1)
-                                       end
-                                       node_list = listnode2
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction747
-       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 teolnode2 = nodearraylist2
-                                       listnode3 = concat(listnode3, listnode1)
-                                       if teolnode2 != null then
-                                               listnode3.add(teolnode2)
-                                       end
-                                       node_list = listnode3
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end