model: new metamodel
[nit.git] / src / parser / parser.nit
index f9e9f33..11222e5 100644 (file)
@@ -3,6 +3,7 @@
 package parser
 
 intrude import parser_prod
+import tables
 
 # State of the parser automata as stored in the parser stack.
 private class State
@@ -139,7 +140,7 @@ class Parser
                                (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 node2 = new AError.init_error("Syntax error: unexpected {token}.", token.location)
                                var node = new Start(null, node2)
                                return node
                        end
@@ -209,15 +210,15 @@ class Parser
                        new ReduceAction56(6),
                        new ReduceAction57(6),
                        new ReduceAction58(6),
-                       new ReduceAction59(7),
+                       new ReduceAction59(6),
                        new ReduceAction60(7),
-                       new ReduceAction61(8),
-                       new ReduceAction62(9),
+                       new ReduceAction61(7),
+                       new ReduceAction62(8),
                        new ReduceAction63(9),
-                       new ReduceAction64(10),
+                       new ReduceAction64(9),
                        new ReduceAction65(10),
-                       new ReduceAction66(11),
-                       new ReduceAction67(12),
+                       new ReduceAction66(10),
+                       new ReduceAction67(11),
                        new ReduceAction68(12),
                        new ReduceAction69(12),
                        new ReduceAction70(12),
@@ -289,570 +290,623 @@ class Parser
                        new ReduceAction136(12),
                        new ReduceAction137(12),
                        new ReduceAction138(12),
-                       new ReduceAction139(13),
-                       new ReduceAction140(13),
-                       new ReduceAction141(14),
-                       new ReduceAction142(14),
-                       new ReduceAction143(15),
-                       new ReduceAction144(15),
-                       new ReduceAction145(16),
-                       new ReduceAction146(16),
-                       new ReduceAction147(16),
-                       new ReduceAction148(16),
-                       new ReduceAction149(17),
-                       new ReduceAction150(17),
-                       new ReduceAction151(17),
-                       new ReduceAction152(17),
-                       new ReduceAction153(17),
-                       new ReduceAction154(17),
-                       new ReduceAction155(17),
-                       new ReduceAction156(17),
-                       new ReduceAction157(17),
-                       new ReduceAction158(17),
-                       new ReduceAction159(17),
-                       new ReduceAction160(17),
-                       new ReduceAction161(17),
-                       new ReduceAction162(17),
-                       new ReduceAction163(17),
-                       new ReduceAction164(17),
-                       new ReduceAction165(17),
-                       new ReduceAction166(17),
-                       new ReduceAction167(18),
-                       new ReduceAction168(18),
-                       new ReduceAction169(18),
-                       new ReduceAction170(18),
-                       new ReduceAction171(18),
-                       new ReduceAction172(18),
-                       new ReduceAction173(18),
-                       new ReduceAction174(18),
-                       new ReduceAction175(19),
-                       new ReduceAction176(19),
-                       new ReduceAction177(19),
-                       new ReduceAction178(19),
-                       new ReduceAction179(20),
-                       new ReduceAction180(20),
-                       new ReduceAction181(20),
-                       new ReduceAction182(21),
-                       new ReduceAction183(22),
-                       new ReduceAction184(22),
-                       new ReduceAction185(22),
-                       new ReduceAction186(23),
-                       new ReduceAction187(24),
-                       new ReduceAction188(24),
-                       new ReduceAction189(24),
-                       new ReduceAction190(24),
-                       new ReduceAction191(24),
-                       new ReduceAction192(24),
-                       new ReduceAction193(25),
-                       new ReduceAction194(26),
-                       new ReduceAction195(26),
-                       new ReduceAction196(26),
-                       new ReduceAction197(26),
-                       new ReduceAction198(27),
-                       new ReduceAction199(27),
-                       new ReduceAction200(28),
-                       new ReduceAction200(29),
-                       new ReduceAction202(30),
-                       new ReduceAction203(30),
-                       new ReduceAction204(30),
-                       new ReduceAction205(30),
-                       new ReduceAction206(31),
-                       new ReduceAction207(31),
-                       new ReduceAction208(32),
-                       new ReduceAction209(32),
-                       new ReduceAction210(33),
-                       new ReduceAction205(34),
-                       new ReduceAction205(34),
-                       new ReduceAction213(34),
-                       new ReduceAction214(34),
-                       new ReduceAction215(34),
-                       new ReduceAction216(34),
-                       new ReduceAction217(34),
-                       new ReduceAction218(34),
-                       new ReduceAction219(34),
-                       new ReduceAction220(34),
-                       new ReduceAction221(34),
-                       new ReduceAction222(34),
-                       new ReduceAction223(34),
-                       new ReduceAction205(34),
-                       new ReduceAction205(34),
-                       new ReduceAction205(34),
-                       new ReduceAction205(34),
-                       new ReduceAction205(34),
-                       new ReduceAction205(34),
-                       new ReduceAction230(34),
-                       new ReduceAction231(34),
-                       new ReduceAction232(34),
-                       new ReduceAction233(34),
-                       new ReduceAction234(34),
-                       new ReduceAction235(34),
-                       new ReduceAction236(34),
-                       new ReduceAction237(34),
-                       new ReduceAction238(35),
-                       new ReduceAction239(36),
-                       new ReduceAction240(36),
-                       new ReduceAction241(37),
-                       new ReduceAction242(37),
-                       new ReduceAction243(37),
-                       new ReduceAction244(37),
-                       new ReduceAction245(37),
+                       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(18),
+                       new ReduceAction197(18),
+                       new ReduceAction198(18),
+                       new ReduceAction199(18),
+                       new ReduceAction200(19),
+                       new ReduceAction201(19),
+                       new ReduceAction202(19),
+                       new ReduceAction203(19),
+                       new ReduceAction204(19),
+                       new ReduceAction205(19),
+                       new ReduceAction206(20),
+                       new ReduceAction207(20),
+                       new ReduceAction208(21),
+                       new ReduceAction209(22),
+                       new ReduceAction210(22),
+                       new ReduceAction211(22),
+                       new ReduceAction212(23),
+                       new ReduceAction213(24),
+                       new ReduceAction214(24),
+                       new ReduceAction215(24),
+                       new ReduceAction216(24),
+                       new ReduceAction217(24),
+                       new ReduceAction218(24),
+                       new ReduceAction219(25),
+                       new ReduceAction220(26),
+                       new ReduceAction221(26),
+                       new ReduceAction222(27),
+                       new ReduceAction223(28),
+                       new ReduceAction223(28),
+                       new ReduceAction225(28),
+                       new ReduceAction226(29),
+                       new ReduceAction227(29),
+                       new ReduceAction228(29),
+                       new ReduceAction229(30),
+                       new ReduceAction230(30),
+                       new ReduceAction231(30),
+                       new ReduceAction232(31),
+                       new ReduceAction233(31),
+                       new ReduceAction234(31),
+                       new ReduceAction235(31),
+                       new ReduceAction236(32),
+                       new ReduceAction237(32),
+                       new ReduceAction238(33),
+                       new ReduceAction238(34),
+                       new ReduceAction240(35),
+                       new ReduceAction241(35),
+                       new ReduceAction242(35),
+                       new ReduceAction243(35),
+                       new ReduceAction244(36),
+                       new ReduceAction245(36),
                        new ReduceAction246(37),
                        new ReduceAction247(37),
-                       new ReduceAction248(37),
-                       new ReduceAction249(37),
-                       new ReduceAction250(38),
-                       new ReduceAction251(38),
-                       new ReduceAction252(38),
-                       new ReduceAction253(38),
-                       new ReduceAction254(38),
-                       new ReduceAction255(38),
-                       new ReduceAction256(39),
-                       new ReduceAction257(39),
+                       new ReduceAction248(38),
+                       new ReduceAction249(38),
+                       new ReduceAction240(39),
+                       new ReduceAction243(40),
+                       new ReduceAction243(40),
+                       new ReduceAction253(40),
+                       new ReduceAction254(40),
+                       new ReduceAction255(40),
+                       new ReduceAction256(40),
+                       new ReduceAction257(40),
                        new ReduceAction258(40),
-                       new ReduceAction259(41),
-                       new ReduceAction260(41),
-                       new ReduceAction261(41),
-                       new ReduceAction262(41),
-                       new ReduceAction263(42),
-                       new ReduceAction264(42),
-                       new ReduceAction265(42),
-                       new ReduceAction266(42),
-                       new ReduceAction267(42),
-                       new ReduceAction268(42),
-                       new ReduceAction269(42),
-                       new ReduceAction270(42),
-                       new ReduceAction271(42),
-                       new ReduceAction272(42),
-                       new ReduceAction273(43),
-                       new ReduceAction274(43),
-                       new ReduceAction275(44),
-                       new ReduceAction276(44),
-                       new ReduceAction277(45),
-                       new ReduceAction278(45),
-                       new ReduceAction279(45),
-                       new ReduceAction280(45),
-                       new ReduceAction281(45),
-                       new ReduceAction210(46),
-                       new ReduceAction36(46),
-                       new ReduceAction284(47),
-                       new ReduceAction285(47),
-                       new ReduceAction286(48),
-                       new ReduceAction287(48),
-                       new ReduceAction288(49),
-                       new ReduceAction289(49),
-                       new ReduceAction290(49),
-                       new ReduceAction291(49),
-                       new ReduceAction292(50),
-                       new ReduceAction293(50),
-                       new ReduceAction294(50),
-                       new ReduceAction295(50),
-                       new ReduceAction296(51),
-                       new ReduceAction205(52),
-                       new ReduceAction232(52),
-                       new ReduceAction233(52),
-                       new ReduceAction300(52),
-                       new ReduceAction205(53),
-                       new ReduceAction302(53),
-                       new ReduceAction205(54),
-                       new ReduceAction304(54),
-                       new ReduceAction305(54),
-                       new ReduceAction306(54),
-                       new ReduceAction205(55),
-                       new ReduceAction308(55),
-                       new ReduceAction205(56),
-                       new ReduceAction310(56),
-                       new ReduceAction311(56),
-                       new ReduceAction312(56),
-                       new ReduceAction313(56),
-                       new ReduceAction314(56),
-                       new ReduceAction315(56),
-                       new ReduceAction316(56),
-                       new ReduceAction317(56),
-                       new ReduceAction318(56),
-                       new ReduceAction319(56),
-                       new ReduceAction320(56),
-                       new ReduceAction205(57),
-                       new ReduceAction322(57),
-                       new ReduceAction323(57),
-                       new ReduceAction205(58),
-                       new ReduceAction325(58),
-                       new ReduceAction326(58),
-                       new ReduceAction327(58),
-                       new ReduceAction205(59),
-                       new ReduceAction329(59),
-                       new ReduceAction330(59),
-                       new ReduceAction205(60),
-                       new ReduceAction332(60),
-                       new ReduceAction333(60),
-                       new ReduceAction334(60),
-                       new ReduceAction335(61),
-                       new ReduceAction336(61),
-                       new ReduceAction230(61),
-                       new ReduceAction231(61),
-                       new ReduceAction234(61),
-                       new ReduceAction235(61),
-                       new ReduceAction236(61),
-                       new ReduceAction237(61),
-                       new ReduceAction343(61),
-                       new ReduceAction344(61),
-                       new ReduceAction345(61),
-                       new ReduceAction346(61),
-                       new ReduceAction347(61),
-                       new ReduceAction348(61),
+                       new ReduceAction259(40),
+                       new ReduceAction260(40),
+                       new ReduceAction261(40),
+                       new ReduceAction262(40),
+                       new ReduceAction263(40),
+                       new ReduceAction243(40),
+                       new ReduceAction243(40),
+                       new ReduceAction243(40),
+                       new ReduceAction243(40),
+                       new ReduceAction243(40),
+                       new ReduceAction243(40),
+                       new ReduceAction270(40),
+                       new ReduceAction271(40),
+                       new ReduceAction272(40),
+                       new ReduceAction273(40),
+                       new ReduceAction274(40),
+                       new ReduceAction275(40),
+                       new ReduceAction276(40),
+                       new ReduceAction277(40),
+                       new ReduceAction278(40),
+                       new ReduceAction279(41),
+                       new ReduceAction280(42),
+                       new ReduceAction281(42),
+                       new ReduceAction282(43),
+                       new ReduceAction283(43),
+                       new ReduceAction284(43),
+                       new ReduceAction285(43),
+                       new ReduceAction286(43),
+                       new ReduceAction287(43),
+                       new ReduceAction288(43),
+                       new ReduceAction289(43),
+                       new ReduceAction290(43),
+                       new ReduceAction291(44),
+                       new ReduceAction292(44),
+                       new ReduceAction293(44),
+                       new ReduceAction294(44),
+                       new ReduceAction295(44),
+                       new ReduceAction296(44),
+                       new ReduceAction297(45),
+                       new ReduceAction298(45),
+                       new ReduceAction299(46),
+                       new ReduceAction300(47),
+                       new ReduceAction301(47),
+                       new ReduceAction302(47),
+                       new ReduceAction303(47),
+                       new ReduceAction304(48),
+                       new ReduceAction305(48),
+                       new ReduceAction306(48),
+                       new ReduceAction307(48),
+                       new ReduceAction308(48),
+                       new ReduceAction309(48),
+                       new ReduceAction310(48),
+                       new ReduceAction311(48),
+                       new ReduceAction312(48),
+                       new ReduceAction313(48),
+                       new ReduceAction314(49),
+                       new ReduceAction315(49),
+                       new ReduceAction316(50),
+                       new ReduceAction317(50),
+                       new ReduceAction318(51),
+                       new ReduceAction319(51),
+                       new ReduceAction320(51),
+                       new ReduceAction321(51),
+                       new ReduceAction322(51),
+                       new ReduceAction240(52),
+                       new ReduceAction242(52),
+                       new ReduceAction325(53),
+                       new ReduceAction326(53),
+                       new ReduceAction327(54),
+                       new ReduceAction328(54),
+                       new ReduceAction329(55),
+                       new ReduceAction330(55),
+                       new ReduceAction331(55),
+                       new ReduceAction332(55),
+                       new ReduceAction333(56),
+                       new ReduceAction334(56),
+                       new ReduceAction335(56),
+                       new ReduceAction336(56),
+                       new ReduceAction337(57),
+                       new ReduceAction243(58),
+                       new ReduceAction272(58),
+                       new ReduceAction273(58),
+                       new ReduceAction341(58),
+                       new ReduceAction243(59),
+                       new ReduceAction343(59),
+                       new ReduceAction243(60),
+                       new ReduceAction345(60),
+                       new ReduceAction346(60),
+                       new ReduceAction347(60),
+                       new ReduceAction243(61),
                        new ReduceAction349(61),
-                       new ReduceAction350(61),
-                       new ReduceAction351(61),
-                       new ReduceAction352(61),
-                       new ReduceAction353(61),
-                       new ReduceAction354(61),
-                       new ReduceAction355(61),
-                       new ReduceAction205(61),
-                       new ReduceAction202(61),
-                       new ReduceAction358(61),
-                       new ReduceAction359(61),
+                       new ReduceAction243(62),
+                       new ReduceAction351(62),
+                       new ReduceAction352(62),
+                       new ReduceAction353(62),
+                       new ReduceAction354(62),
+                       new ReduceAction355(62),
+                       new ReduceAction356(62),
+                       new ReduceAction357(62),
+                       new ReduceAction358(62),
+                       new ReduceAction359(62),
                        new ReduceAction360(62),
                        new ReduceAction361(62),
-                       new ReduceAction362(63),
-                       new ReduceAction363(64),
-                       new ReduceAction362(65),
-                       new ReduceAction365(66),
-                       new ReduceAction366(67),
-                       new ReduceAction367(68),
-                       new ReduceAction368(68),
-                       new ReduceAction181(68),
-                       new ReduceAction370(68),
-                       new ReduceAction367(69),
-                       new ReduceAction368(69),
-                       new ReduceAction373(69),
-                       new ReduceAction181(69),
-                       new ReduceAction370(69),
-                       new ReduceAction367(70),
-                       new ReduceAction368(70),
-                       new ReduceAction378(71),
-                       new ReduceAction379(72),
-                       new ReduceAction380(72),
-                       new ReduceAction381(73),
-                       new ReduceAction382(73),
-                       new ReduceAction383(73),
-                       new ReduceAction384(74),
-                       new ReduceAction385(75),
-                       new ReduceAction386(76),
-                       new ReduceAction386(76),
-                       new ReduceAction388(77),
-                       new ReduceAction389(77),
-                       new ReduceAction36(77),
-                       new ReduceAction391(78),
-                       new ReduceAction392(78),
-                       new ReduceAction393(79),
-                       new ReduceAction394(79),
-                       new ReduceAction386(79),
-                       new ReduceAction66(80),
-                       new ReduceAction67(81),
-                       new ReduceAction68(81),
-                       new ReduceAction69(81),
-                       new ReduceAction70(81),
-                       new ReduceAction71(81),
-                       new ReduceAction72(81),
-                       new ReduceAction77(81),
-                       new ReduceAction78(81),
-                       new ReduceAction79(81),
-                       new ReduceAction80(81),
-                       new ReduceAction167(82),
-                       new ReduceAction168(82),
-                       new ReduceAction169(82),
-                       new ReduceAction170(82),
-                       new ReduceAction194(83),
-                       new ReduceAction195(83),
-                       new ReduceAction205(84),
-                       new ReduceAction232(84),
-                       new ReduceAction233(84),
-                       new ReduceAction205(85),
-                       new ReduceAction302(85),
-                       new ReduceAction205(86),
-                       new ReduceAction304(86),
-                       new ReduceAction305(86),
-                       new ReduceAction306(86),
-                       new ReduceAction205(87),
-                       new ReduceAction308(87),
-                       new ReduceAction205(88),
-                       new ReduceAction310(88),
-                       new ReduceAction311(88),
-                       new ReduceAction312(88),
-                       new ReduceAction313(88),
-                       new ReduceAction314(88),
-                       new ReduceAction315(88),
-                       new ReduceAction316(88),
-                       new ReduceAction317(88),
-                       new ReduceAction318(88),
-                       new ReduceAction319(88),
-                       new ReduceAction320(88),
-                       new ReduceAction205(89),
-                       new ReduceAction322(89),
-                       new ReduceAction323(89),
-                       new ReduceAction205(90),
-                       new ReduceAction325(90),
-                       new ReduceAction326(90),
-                       new ReduceAction327(90),
-                       new ReduceAction205(91),
-                       new ReduceAction329(91),
-                       new ReduceAction330(91),
-                       new ReduceAction205(92),
-                       new ReduceAction332(92),
-                       new ReduceAction333(92),
-                       new ReduceAction334(92),
-                       new ReduceAction335(93),
-                       new ReduceAction336(93),
-                       new ReduceAction230(93),
-                       new ReduceAction231(93),
-                       new ReduceAction234(93),
-                       new ReduceAction235(93),
-                       new ReduceAction236(93),
-                       new ReduceAction237(93),
-                       new ReduceAction344(93),
-                       new ReduceAction348(93),
-                       new ReduceAction349(93),
-                       new ReduceAction350(93),
-                       new ReduceAction351(93),
-                       new ReduceAction352(93),
-                       new ReduceAction353(93),
-                       new ReduceAction354(93),
-                       new ReduceAction355(93),
-                       new ReduceAction205(93),
-                       new ReduceAction202(93),
-                       new ReduceAction358(93),
-                       new ReduceAction359(93),
-                       new ReduceAction202(94),
-                       new ReduceAction203(94),
-                       new ReduceAction204(94),
-                       new ReduceAction205(94),
-                       new ReduceAction205(95),
-                       new ReduceAction205(95),
-                       new ReduceAction213(95),
-                       new ReduceAction214(95),
-                       new ReduceAction215(95),
-                       new ReduceAction216(95),
-                       new ReduceAction217(95),
-                       new ReduceAction218(95),
-                       new ReduceAction219(95),
-                       new ReduceAction220(95),
-                       new ReduceAction221(95),
-                       new ReduceAction222(95),
-                       new ReduceAction223(95),
-                       new ReduceAction205(95),
-                       new ReduceAction205(95),
-                       new ReduceAction205(95),
-                       new ReduceAction205(95),
-                       new ReduceAction205(95),
-                       new ReduceAction205(95),
-                       new ReduceAction230(95),
-                       new ReduceAction231(95),
-                       new ReduceAction232(95),
-                       new ReduceAction233(95),
-                       new ReduceAction234(95),
-                       new ReduceAction235(95),
-                       new ReduceAction236(95),
-                       new ReduceAction237(95),
-                       new ReduceAction239(96),
-                       new ReduceAction240(96),
-                       new ReduceAction241(97),
-                       new ReduceAction242(97),
+                       new ReduceAction243(63),
+                       new ReduceAction363(63),
+                       new ReduceAction364(63),
+                       new ReduceAction243(64),
+                       new ReduceAction366(64),
+                       new ReduceAction367(64),
+                       new ReduceAction368(64),
+                       new ReduceAction243(65),
+                       new ReduceAction370(65),
+                       new ReduceAction371(65),
+                       new ReduceAction243(66),
+                       new ReduceAction373(66),
+                       new ReduceAction374(66),
+                       new ReduceAction375(66),
+                       new ReduceAction376(67),
+                       new ReduceAction377(67),
+                       new ReduceAction270(67),
+                       new ReduceAction271(67),
+                       new ReduceAction274(67),
+                       new ReduceAction275(67),
+                       new ReduceAction276(67),
+                       new ReduceAction277(67),
+                       new ReduceAction384(67),
+                       new ReduceAction385(67),
+                       new ReduceAction386(67),
+                       new ReduceAction387(67),
+                       new ReduceAction388(67),
+                       new ReduceAction389(67),
+                       new ReduceAction390(67),
+                       new ReduceAction391(67),
+                       new ReduceAction392(67),
+                       new ReduceAction393(67),
+                       new ReduceAction394(67),
+                       new ReduceAction395(67),
+                       new ReduceAction396(67),
+                       new ReduceAction243(67),
+                       new ReduceAction398(67),
+                       new ReduceAction399(67),
+                       new ReduceAction400(67),
+                       new ReduceAction401(68),
+                       new ReduceAction402(68),
+                       new ReduceAction403(69),
+                       new ReduceAction404(70),
+                       new ReduceAction403(71),
+                       new ReduceAction406(72),
+                       new ReduceAction407(73),
+                       new ReduceAction408(74),
+                       new ReduceAction409(74),
+                       new ReduceAction410(74),
+                       new ReduceAction408(75),
+                       new ReduceAction412(75),
+                       new ReduceAction409(75),
+                       new ReduceAction410(75),
+                       new ReduceAction415(76),
+                       new ReduceAction416(77),
+                       new ReduceAction417(77),
+                       new ReduceAction418(78),
+                       new ReduceAction419(79),
+                       new ReduceAction420(79),
+                       new ReduceAction421(80),
+                       new ReduceAction422(80),
+                       new ReduceAction423(80),
+                       new ReduceAction424(80),
+                       new ReduceAction425(81),
+                       new ReduceAction426(81),
+                       new ReduceAction427(81),
+                       new ReduceAction428(82),
+                       new ReduceAction429(83),
+                       new ReduceAction430(84),
+                       new ReduceAction430(84),
+                       new ReduceAction432(85),
+                       new ReduceAction433(85),
+                       new ReduceAction36(85),
+                       new ReduceAction435(86),
+                       new ReduceAction436(86),
+                       new ReduceAction437(87),
+                       new ReduceAction438(87),
+                       new ReduceAction430(87),
+                       new ReduceAction67(88),
+                       new ReduceAction68(89),
+                       new ReduceAction69(89),
+                       new ReduceAction70(89),
+                       new ReduceAction71(89),
+                       new ReduceAction72(89),
+                       new ReduceAction73(89),
+                       new ReduceAction78(89),
+                       new ReduceAction79(89),
+                       new ReduceAction80(89),
+                       new ReduceAction81(89),
+                       new ReduceAction82(89),
+                       new ReduceAction83(89),
+                       new ReduceAction84(89),
+                       new ReduceAction85(89),
+                       new ReduceAction188(90),
+                       new ReduceAction189(90),
+                       new ReduceAction190(90),
+                       new ReduceAction191(90),
+                       new ReduceAction196(90),
+                       new ReduceAction197(90),
+                       new ReduceAction232(91),
+                       new ReduceAction233(91),
+                       new ReduceAction243(92),
+                       new ReduceAction272(92),
+                       new ReduceAction273(92),
+                       new ReduceAction243(93),
+                       new ReduceAction343(93),
+                       new ReduceAction243(94),
+                       new ReduceAction345(94),
+                       new ReduceAction346(94),
+                       new ReduceAction347(94),
+                       new ReduceAction243(95),
+                       new ReduceAction349(95),
+                       new ReduceAction243(96),
+                       new ReduceAction351(96),
+                       new ReduceAction352(96),
+                       new ReduceAction353(96),
+                       new ReduceAction354(96),
+                       new ReduceAction355(96),
+                       new ReduceAction356(96),
+                       new ReduceAction357(96),
+                       new ReduceAction358(96),
+                       new ReduceAction359(96),
+                       new ReduceAction360(96),
+                       new ReduceAction361(96),
                        new ReduceAction243(97),
-                       new ReduceAction244(97),
-                       new ReduceAction245(97),
-                       new ReduceAction246(97),
-                       new ReduceAction247(97),
-                       new ReduceAction248(97),
-                       new ReduceAction249(97),
-                       new ReduceAction258(98),
-                       new ReduceAction259(99),
-                       new ReduceAction260(99),
-                       new ReduceAction261(99),
-                       new ReduceAction262(99),
-                       new ReduceAction263(100),
-                       new ReduceAction264(100),
-                       new ReduceAction265(100),
-                       new ReduceAction266(100),
-                       new ReduceAction267(100),
-                       new ReduceAction268(100),
-                       new ReduceAction269(100),
-                       new ReduceAction270(100),
-                       new ReduceAction271(100),
-                       new ReduceAction272(100),
+                       new ReduceAction363(97),
+                       new ReduceAction364(97),
+                       new ReduceAction243(98),
+                       new ReduceAction366(98),
+                       new ReduceAction367(98),
+                       new ReduceAction368(98),
+                       new ReduceAction243(99),
+                       new ReduceAction370(99),
+                       new ReduceAction371(99),
+                       new ReduceAction243(100),
+                       new ReduceAction373(100),
+                       new ReduceAction374(100),
+                       new ReduceAction375(100),
+                       new ReduceAction376(101),
+                       new ReduceAction377(101),
+                       new ReduceAction270(101),
+                       new ReduceAction271(101),
+                       new ReduceAction274(101),
                        new ReduceAction275(101),
                        new ReduceAction276(101),
-                       new ReduceAction277(102),
-                       new ReduceAction284(103),
-                       new ReduceAction285(103),
-                       new ReduceAction286(104),
-                       new ReduceAction287(104),
+                       new ReduceAction277(101),
+                       new ReduceAction385(101),
+                       new ReduceAction389(101),
+                       new ReduceAction390(101),
+                       new ReduceAction391(101),
+                       new ReduceAction392(101),
+                       new ReduceAction393(101),
+                       new ReduceAction394(101),
+                       new ReduceAction395(101),
+                       new ReduceAction396(101),
+                       new ReduceAction243(101),
+                       new ReduceAction398(101),
+                       new ReduceAction399(101),
+                       new ReduceAction400(101),
+                       new ReduceAction240(102),
+                       new ReduceAction241(102),
+                       new ReduceAction242(102),
+                       new ReduceAction243(102),
+                       new ReduceAction243(103),
+                       new ReduceAction243(103),
+                       new ReduceAction253(103),
+                       new ReduceAction254(103),
+                       new ReduceAction255(103),
+                       new ReduceAction256(103),
+                       new ReduceAction257(103),
+                       new ReduceAction258(103),
+                       new ReduceAction259(103),
+                       new ReduceAction260(103),
+                       new ReduceAction261(103),
+                       new ReduceAction262(103),
+                       new ReduceAction263(103),
+                       new ReduceAction243(103),
+                       new ReduceAction243(103),
+                       new ReduceAction243(103),
+                       new ReduceAction243(103),
+                       new ReduceAction243(103),
+                       new ReduceAction243(103),
+                       new ReduceAction270(103),
+                       new ReduceAction271(103),
+                       new ReduceAction272(103),
+                       new ReduceAction273(103),
+                       new ReduceAction274(103),
+                       new ReduceAction275(103),
+                       new ReduceAction276(103),
+                       new ReduceAction277(103),
+                       new ReduceAction278(103),
+                       new ReduceAction280(104),
+                       new ReduceAction281(104),
+                       new ReduceAction282(105),
+                       new ReduceAction283(105),
+                       new ReduceAction284(105),
+                       new ReduceAction285(105),
+                       new ReduceAction286(105),
+                       new ReduceAction287(105),
                        new ReduceAction288(105),
                        new ReduceAction289(105),
                        new ReduceAction290(105),
-                       new ReduceAction291(105),
-                       new ReduceAction292(106),
-                       new ReduceAction293(106),
-                       new ReduceAction205(107),
-                       new ReduceAction232(107),
-                       new ReduceAction233(107),
+                       new ReduceAction299(106),
                        new ReduceAction300(107),
-                       new ReduceAction205(108),
-                       new ReduceAction232(108),
-                       new ReduceAction233(108),
-                       new ReduceAction202(109),
-                       new ReduceAction203(109),
-                       new ReduceAction204(109),
-                       new ReduceAction202(110),
-                       new ReduceAction203(110),
-                       new ReduceAction204(110),
-                       new ReduceAction205(111),
-                       new ReduceAction232(111),
-                       new ReduceAction233(111),
-                       new ReduceAction205(112),
-                       new ReduceAction302(112),
-                       new ReduceAction205(113),
-                       new ReduceAction304(113),
-                       new ReduceAction305(113),
-                       new ReduceAction306(113),
-                       new ReduceAction205(114),
-                       new ReduceAction308(114),
-                       new ReduceAction205(115),
-                       new ReduceAction310(115),
-                       new ReduceAction311(115),
-                       new ReduceAction312(115),
-                       new ReduceAction313(115),
-                       new ReduceAction314(115),
-                       new ReduceAction315(115),
-                       new ReduceAction316(115),
-                       new ReduceAction317(115),
-                       new ReduceAction318(115),
-                       new ReduceAction319(115),
-                       new ReduceAction320(115),
-                       new ReduceAction205(116),
-                       new ReduceAction322(116),
-                       new ReduceAction323(116),
-                       new ReduceAction205(117),
-                       new ReduceAction325(117),
-                       new ReduceAction326(117),
-                       new ReduceAction327(117),
-                       new ReduceAction205(118),
-                       new ReduceAction329(118),
-                       new ReduceAction330(118),
-                       new ReduceAction205(119),
-                       new ReduceAction332(119),
-                       new ReduceAction333(119),
-                       new ReduceAction334(119),
-                       new ReduceAction335(120),
-                       new ReduceAction336(120),
-                       new ReduceAction230(120),
-                       new ReduceAction231(120),
-                       new ReduceAction234(120),
-                       new ReduceAction235(120),
-                       new ReduceAction236(120),
-                       new ReduceAction237(120),
+                       new ReduceAction301(107),
+                       new ReduceAction302(107),
+                       new ReduceAction303(107),
+                       new ReduceAction304(108),
+                       new ReduceAction305(108),
+                       new ReduceAction306(108),
+                       new ReduceAction307(108),
+                       new ReduceAction308(108),
+                       new ReduceAction309(108),
+                       new ReduceAction310(108),
+                       new ReduceAction311(108),
+                       new ReduceAction312(108),
+                       new ReduceAction313(108),
+                       new ReduceAction316(109),
+                       new ReduceAction317(109),
+                       new ReduceAction318(110),
+                       new ReduceAction325(111),
+                       new ReduceAction326(111),
+                       new ReduceAction327(112),
+                       new ReduceAction328(112),
+                       new ReduceAction329(113),
+                       new ReduceAction330(113),
+                       new ReduceAction331(113),
+                       new ReduceAction332(113),
+                       new ReduceAction333(114),
+                       new ReduceAction334(114),
+                       new ReduceAction243(115),
+                       new ReduceAction272(115),
+                       new ReduceAction273(115),
+                       new ReduceAction341(115),
+                       new ReduceAction243(116),
+                       new ReduceAction272(116),
+                       new ReduceAction273(116),
+                       new ReduceAction240(117),
+                       new ReduceAction241(117),
+                       new ReduceAction242(117),
+                       new ReduceAction240(118),
+                       new ReduceAction241(118),
+                       new ReduceAction242(118),
+                       new ReduceAction243(119),
+                       new ReduceAction272(119),
+                       new ReduceAction273(119),
+                       new ReduceAction243(120),
                        new ReduceAction343(120),
-                       new ReduceAction344(120),
-                       new ReduceAction348(120),
-                       new ReduceAction349(120),
-                       new ReduceAction350(120),
-                       new ReduceAction351(120),
-                       new ReduceAction352(120),
-                       new ReduceAction353(120),
-                       new ReduceAction354(120),
-                       new ReduceAction355(120),
-                       new ReduceAction205(120),
-                       new ReduceAction358(120),
-                       new ReduceAction359(120),
-                       new ReduceAction205(121),
-                       new ReduceAction232(121),
-                       new ReduceAction233(121),
-                       new ReduceAction205(122),
-                       new ReduceAction302(122),
-                       new ReduceAction205(123),
-                       new ReduceAction304(123),
-                       new ReduceAction305(123),
-                       new ReduceAction306(123),
-                       new ReduceAction205(124),
-                       new ReduceAction308(124),
-                       new ReduceAction205(125),
-                       new ReduceAction310(125),
-                       new ReduceAction311(125),
-                       new ReduceAction312(125),
-                       new ReduceAction313(125),
-                       new ReduceAction314(125),
-                       new ReduceAction315(125),
-                       new ReduceAction316(125),
-                       new ReduceAction317(125),
-                       new ReduceAction318(125),
-                       new ReduceAction319(125),
-                       new ReduceAction320(125),
-                       new ReduceAction205(126),
-                       new ReduceAction322(126),
-                       new ReduceAction323(126),
-                       new ReduceAction205(127),
-                       new ReduceAction325(127),
-                       new ReduceAction326(127),
-                       new ReduceAction327(127),
-                       new ReduceAction205(128),
-                       new ReduceAction329(128),
-                       new ReduceAction330(128),
-                       new ReduceAction205(129),
-                       new ReduceAction332(129),
-                       new ReduceAction647(129),
-                       new ReduceAction648(130),
-                       new ReduceAction649(130),
-                       new ReduceAction234(130),
-                       new ReduceAction235(130),
-                       new ReduceAction652(130),
-                       new ReduceAction344(130),
-                       new ReduceAction348(130),
-                       new ReduceAction349(130),
-                       new ReduceAction350(130),
-                       new ReduceAction351(130),
-                       new ReduceAction352(130),
-                       new ReduceAction353(130),
-                       new ReduceAction354(130),
-                       new ReduceAction355(130),
-                       new ReduceAction205(130),
-                       new ReduceAction358(130),
-                       new ReduceAction359(130),
-                       new ReduceAction665(131),
-                       new ReduceAction666(131),
-                       new ReduceAction205(132),
-                       new ReduceAction232(132),
-                       new ReduceAction233(132),
-                       new ReduceAction205(133),
-                       new ReduceAction232(133),
-                       new ReduceAction233(133),
-                       new ReduceAction673(134),
-                       new ReduceAction674(134),
-                       new ReduceAction675(135),
-                       new ReduceAction676(135),
-                       new ReduceAction677(136),
-                       new ReduceAction678(136),
-                       new ReduceAction679(137),
-                       new ReduceAction680(137),
-                       new ReduceAction677(138),
-                       new ReduceAction678(138),
-                       new ReduceAction683(139),
-                       new ReduceAction684(139),
-                       new ReduceAction685(140),
-                       new ReduceAction686(140),
-                       new ReduceAction687(141),
-                       new ReduceAction688(141),
-                       new ReduceAction198(142),
-                       new ReduceAction690(142),
-                       new ReduceAction373(143),
-                       new ReduceAction692(143),
-                       new ReduceAction693(144),
-                       new ReduceAction694(144),
-                       new ReduceAction373(145),
-                       new ReduceAction692(145),
-                       new ReduceAction379(146),
-                       new ReduceAction698(146),
-                       new ReduceAction699(147),
-                       new ReduceAction700(147),
-                       new ReduceAction701(148),
-                       new ReduceAction702(148)
+                       new ReduceAction243(121),
+                       new ReduceAction345(121),
+                       new ReduceAction346(121),
+                       new ReduceAction347(121),
+                       new ReduceAction243(122),
+                       new ReduceAction349(122),
+                       new ReduceAction243(123),
+                       new ReduceAction351(123),
+                       new ReduceAction352(123),
+                       new ReduceAction353(123),
+                       new ReduceAction354(123),
+                       new ReduceAction355(123),
+                       new ReduceAction356(123),
+                       new ReduceAction357(123),
+                       new ReduceAction358(123),
+                       new ReduceAction359(123),
+                       new ReduceAction360(123),
+                       new ReduceAction361(123),
+                       new ReduceAction243(124),
+                       new ReduceAction363(124),
+                       new ReduceAction364(124),
+                       new ReduceAction243(125),
+                       new ReduceAction366(125),
+                       new ReduceAction367(125),
+                       new ReduceAction368(125),
+                       new ReduceAction243(126),
+                       new ReduceAction370(126),
+                       new ReduceAction371(126),
+                       new ReduceAction243(127),
+                       new ReduceAction373(127),
+                       new ReduceAction374(127),
+                       new ReduceAction375(127),
+                       new ReduceAction376(128),
+                       new ReduceAction377(128),
+                       new ReduceAction270(128),
+                       new ReduceAction271(128),
+                       new ReduceAction274(128),
+                       new ReduceAction275(128),
+                       new ReduceAction276(128),
+                       new ReduceAction277(128),
+                       new ReduceAction384(128),
+                       new ReduceAction385(128),
+                       new ReduceAction389(128),
+                       new ReduceAction390(128),
+                       new ReduceAction391(128),
+                       new ReduceAction392(128),
+                       new ReduceAction393(128),
+                       new ReduceAction394(128),
+                       new ReduceAction395(128),
+                       new ReduceAction396(128),
+                       new ReduceAction243(128),
+                       new ReduceAction399(128),
+                       new ReduceAction400(128),
+                       new ReduceAction243(129),
+                       new ReduceAction272(129),
+                       new ReduceAction273(129),
+                       new ReduceAction243(130),
+                       new ReduceAction343(130),
+                       new ReduceAction243(131),
+                       new ReduceAction345(131),
+                       new ReduceAction346(131),
+                       new ReduceAction347(131),
+                       new ReduceAction243(132),
+                       new ReduceAction349(132),
+                       new ReduceAction243(133),
+                       new ReduceAction351(133),
+                       new ReduceAction352(133),
+                       new ReduceAction353(133),
+                       new ReduceAction354(133),
+                       new ReduceAction355(133),
+                       new ReduceAction356(133),
+                       new ReduceAction357(133),
+                       new ReduceAction358(133),
+                       new ReduceAction359(133),
+                       new ReduceAction360(133),
+                       new ReduceAction361(133),
+                       new ReduceAction243(134),
+                       new ReduceAction363(134),
+                       new ReduceAction364(134),
+                       new ReduceAction243(135),
+                       new ReduceAction366(135),
+                       new ReduceAction367(135),
+                       new ReduceAction368(135),
+                       new ReduceAction243(136),
+                       new ReduceAction370(136),
+                       new ReduceAction371(136),
+                       new ReduceAction243(137),
+                       new ReduceAction373(137),
+                       new ReduceAction698(137),
+                       new ReduceAction699(138),
+                       new ReduceAction700(138),
+                       new ReduceAction274(138),
+                       new ReduceAction275(138),
+                       new ReduceAction703(138),
+                       new ReduceAction385(138),
+                       new ReduceAction389(138),
+                       new ReduceAction390(138),
+                       new ReduceAction391(138),
+                       new ReduceAction392(138),
+                       new ReduceAction393(138),
+                       new ReduceAction394(138),
+                       new ReduceAction395(138),
+                       new ReduceAction396(138),
+                       new ReduceAction243(138),
+                       new ReduceAction399(138),
+                       new ReduceAction400(138),
+                       new ReduceAction716(139),
+                       new ReduceAction717(139),
+                       new ReduceAction243(140),
+                       new ReduceAction272(140),
+                       new ReduceAction273(140),
+                       new ReduceAction243(141),
+                       new ReduceAction272(141),
+                       new ReduceAction273(141),
+                       new ReduceAction724(142),
+                       new ReduceAction725(142),
+                       new ReduceAction726(143),
+                       new ReduceAction727(143),
+                       new ReduceAction728(144),
+                       new ReduceAction729(144),
+                       new ReduceAction730(145),
+                       new ReduceAction731(145),
+                       new ReduceAction728(146),
+                       new ReduceAction729(146),
+                       new ReduceAction734(147),
+                       new ReduceAction735(147),
+                       new ReduceAction736(148),
+                       new ReduceAction737(148),
+                       new ReduceAction738(149),
+                       new ReduceAction739(149),
+                       new ReduceAction740(150),
+                       new ReduceAction741(150),
+                       new ReduceAction236(151),
+                       new ReduceAction743(151),
+                       new ReduceAction744(152),
+                       new ReduceAction745(152),
+                       new ReduceAction212(153),
+                       new ReduceAction747(153),
+                       new ReduceAction744(154),
+                       new ReduceAction745(154),
+                       new ReduceAction419(155),
+                       new ReduceAction751(155),
+                       new ReduceAction752(156),
+                       new ReduceAction753(156),
+                       new ReduceAction754(157),
+                       new ReduceAction755(157)
                )
        end
 end
@@ -1941,12 +1995,12 @@ private class ReduceAction32
                                        assert pdocnode2 isa nullable ADoc
                                        var tkwmodulenode3 = nodearraylist2
                                        assert tkwmodulenode3 isa nullable TKwmodule
-                                       var tidnode4 = nodearraylist4
-                                       assert tidnode4 isa nullable TId
+                                       var pmodulenamenode4 = nodearraylist4
+                                       assert pmodulenamenode4 isa nullable AModuleName
                                        var pmoduledeclnode1: nullable AModuledecl = new AModuledecl.init_amoduledecl(
                                                pdocnode2,
                                                tkwmodulenode3,
-                                               tidnode4
+                                               pmodulenamenode4
                                        )
                                        node_list = pmoduledeclnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -1967,12 +2021,12 @@ private class ReduceAction33
                                        assert pvisibilitynode2 isa nullable AVisibility
                                        var tkwimportnode3 = nodearraylist3
                                        assert tkwimportnode3 isa nullable TKwimport
-                                       var tidnode4 = nodearraylist5
-                                       assert tidnode4 isa nullable TId
+                                       var pmodulenamenode4 = nodearraylist5
+                                       assert pmodulenamenode4 isa nullable AModuleName
                                        var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport(
                                                pvisibilitynode2,
                                                tkwimportnode3,
-                                               tidnode4
+                                               pmodulenamenode4
                                        )
                                        node_list = pimportnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2073,6 +2127,8 @@ private class ReduceAction39
                                        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,
@@ -2081,7 +2137,8 @@ private class ReduceAction39
                                                tclassidnode6,
                                                listnode7,
                                                listnode8,
-                                               listnode9
+                                               listnode9,
+                                               tkwendnode10
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2113,6 +2170,8 @@ private class ReduceAction40
                                        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,
@@ -2121,7 +2180,8 @@ private class ReduceAction40
                                                tclassidnode6,
                                                listnode7,
                                                listnode8,
-                                               listnode9
+                                               listnode9,
+                                               tkwendnode10
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2154,6 +2214,8 @@ private class ReduceAction41
                                        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,
@@ -2162,7 +2224,8 @@ private class ReduceAction41
                                                tclassidnode6,
                                                listnode8,
                                                listnode9,
-                                               listnode10
+                                               listnode10,
+                                               tkwendnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2198,6 +2261,8 @@ private class ReduceAction42
                                        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,
@@ -2206,7 +2271,8 @@ private class ReduceAction42
                                                tclassidnode6,
                                                listnode8,
                                                listnode9,
-                                               listnode10
+                                               listnode10,
+                                               tkwendnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2239,6 +2305,8 @@ private class ReduceAction43
                                        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,
@@ -2247,7 +2315,8 @@ private class ReduceAction43
                                                tclassidnode6,
                                                listnode7,
                                                listnode9,
-                                               listnode10
+                                               listnode10,
+                                               tkwendnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2283,6 +2352,8 @@ private class ReduceAction44
                                        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,
@@ -2291,7 +2362,8 @@ private class ReduceAction44
                                                tclassidnode6,
                                                listnode7,
                                                listnode9,
-                                               listnode10
+                                               listnode10,
+                                               tkwendnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2328,6 +2400,8 @@ private class ReduceAction45
                                        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,
@@ -2336,7 +2410,8 @@ private class ReduceAction45
                                                tclassidnode6,
                                                listnode8,
                                                listnode10,
-                                               listnode11
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2376,6 +2451,8 @@ private class ReduceAction46
                                        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,
@@ -2384,7 +2461,8 @@ private class ReduceAction46
                                                tclassidnode6,
                                                listnode8,
                                                listnode10,
-                                               listnode11
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2417,6 +2495,8 @@ private class ReduceAction47
                                        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,
@@ -2425,7 +2505,8 @@ private class ReduceAction47
                                                tclassidnode6,
                                                listnode7,
                                                listnode8,
-                                               listnode10
+                                               listnode10,
+                                               tkwendnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2461,6 +2542,8 @@ private class ReduceAction48
                                        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,
@@ -2469,7 +2552,8 @@ private class ReduceAction48
                                                tclassidnode6,
                                                listnode7,
                                                listnode8,
-                                               listnode10
+                                               listnode10,
+                                               tkwendnode11
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2506,6 +2590,8 @@ private class ReduceAction49
                                        var listnode10 = nodearraylist7
                                        assert listnode10 isa Array[Object]
                                        listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -2514,7 +2600,8 @@ private class ReduceAction49
                                                tclassidnode6,
                                                listnode8,
                                                listnode9,
-                                               listnode11
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2554,6 +2641,8 @@ private class ReduceAction50
                                        var listnode10 = nodearraylist8
                                        assert listnode10 isa Array[Object]
                                        listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist10
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2562,7 +2651,8 @@ private class ReduceAction50
                                                tclassidnode6,
                                                listnode8,
                                                listnode9,
-                                               listnode11
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2599,6 +2689,8 @@ private class ReduceAction51
                                        var listnode10 = nodearraylist7
                                        assert listnode10 isa Array[Object]
                                        listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist9
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -2607,7 +2699,8 @@ private class ReduceAction51
                                                tclassidnode6,
                                                listnode7,
                                                listnode9,
-                                               listnode11
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2647,6 +2740,8 @@ private class ReduceAction52
                                        var listnode10 = nodearraylist8
                                        assert listnode10 isa Array[Object]
                                        listnode11 = concat(listnode11, listnode10)
+                                       var tkwendnode12 = nodearraylist10
+                                       assert tkwendnode12 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2655,7 +2750,8 @@ private class ReduceAction52
                                                tclassidnode6,
                                                listnode7,
                                                listnode9,
-                                               listnode11
+                                               listnode11,
+                                               tkwendnode12
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2696,6 +2792,8 @@ private class ReduceAction53
                                        var listnode11 = nodearraylist8
                                        assert listnode11 isa Array[Object]
                                        listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist10
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                null,
@@ -2704,7 +2802,8 @@ private class ReduceAction53
                                                tclassidnode6,
                                                listnode8,
                                                listnode10,
-                                               listnode12
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2748,6 +2847,8 @@ private class ReduceAction54
                                        var listnode11 = nodearraylist9
                                        assert listnode11 isa Array[Object]
                                        listnode12 = concat(listnode12, listnode11)
+                                       var tkwendnode13 = nodearraylist11
+                                       assert tkwendnode13 isa nullable TKwend
                                        var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef(
                                                pdocnode2,
                                                tkwredefnode3,
@@ -2756,7 +2857,8 @@ private class ReduceAction54
                                                tclassidnode6,
                                                listnode8,
                                                listnode10,
-                                               listnode12
+                                               listnode12,
+                                               tkwendnode13
                                        )
                                        node_list = pclassdefnode1
                                        p.push(p.go_to(_goto), node_list)
@@ -2831,6 +2933,21 @@ private class ReduceAction59
        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
+                                       )
+                                       node_list = pclasskindnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction60
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
                                        var nodearraylist5 = p.pop
                                        var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
@@ -2845,7 +2962,7 @@ private class ReduceAction59
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction60
+private class ReduceAction61
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2868,7 +2985,7 @@ private class ReduceAction60
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction61
+private class ReduceAction62
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2881,7 +2998,7 @@ private class ReduceAction61
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction62
+private class ReduceAction63
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2897,7 +3014,7 @@ private class ReduceAction62
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction63
+private class ReduceAction64
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2916,7 +3033,7 @@ private class ReduceAction63
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction64
+private class ReduceAction65
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2938,7 +3055,7 @@ private class ReduceAction64
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction65
+private class ReduceAction66
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2960,7 +3077,7 @@ private class ReduceAction65
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction66
+private class ReduceAction67
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -2972,7 +3089,7 @@ private class ReduceAction66
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction67
+private class ReduceAction68
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3009,7 +3126,7 @@ private class ReduceAction67
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction68
+private class ReduceAction69
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3049,7 +3166,7 @@ private class ReduceAction68
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction69
+private class ReduceAction70
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3087,7 +3204,7 @@ private class ReduceAction69
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction70
+private class ReduceAction71
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3128,7 +3245,7 @@ private class ReduceAction70
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction71
+private class ReduceAction72
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3166,7 +3283,7 @@ private class ReduceAction71
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction72
+private class ReduceAction73
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3207,7 +3324,7 @@ private class ReduceAction72
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction73
+private class ReduceAction74
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3241,7 +3358,7 @@ private class ReduceAction73
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction74
+private class ReduceAction75
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3278,7 +3395,7 @@ private class ReduceAction74
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction75
+private class ReduceAction76
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3312,7 +3429,7 @@ private class ReduceAction75
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction76
+private class ReduceAction77
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3349,7 +3466,7 @@ private class ReduceAction76
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction77
+private class ReduceAction78
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3378,13 +3495,14 @@ private class ReduceAction77
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction78
+private class ReduceAction79
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3416,13 +3534,14 @@ private class ReduceAction78
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
+                                               null,
                                                null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction79
+private class ReduceAction80
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3454,13 +3573,14 @@ private class ReduceAction79
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8
+                                               tstringnode8,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction80
+private class ReduceAction81
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3495,13 +3615,182 @@ private class ReduceAction80
                                                tkwmethnode5,
                                                pmethidnode6,
                                                psignaturenode7,
-                                               tstringnode8
+                                               tstringnode8,
+                                               null
                                        )
                                        node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction81
+private class ReduceAction82
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexterncallsnode9 = nodearraylist8
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction83
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction84
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist3
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction85
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwmethnode5 = nodearraylist4
+                                       assert tkwmethnode5 isa nullable TKwmeth
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist10
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternMethPropdef = new AExternMethPropdef.init_aexternmethpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwmethnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction86
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3534,7 +3823,7 @@ private class ReduceAction81
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction82
+private class ReduceAction87
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3570,7 +3859,7 @@ private class ReduceAction82
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction83
+private class ReduceAction88
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3606,7 +3895,7 @@ private class ReduceAction83
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction84
+private class ReduceAction89
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3645,7 +3934,7 @@ private class ReduceAction84
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction85
+private class ReduceAction90
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3681,7 +3970,7 @@ private class ReduceAction85
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction86
+private class ReduceAction91
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3720,7 +4009,7 @@ private class ReduceAction86
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction87
+private class ReduceAction92
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3759,7 +4048,7 @@ private class ReduceAction87
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction88
+private class ReduceAction93
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3801,7 +4090,7 @@ private class ReduceAction88
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction89
+private class ReduceAction94
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3837,7 +4126,7 @@ private class ReduceAction89
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction90
+private class ReduceAction95
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3876,7 +4165,7 @@ private class ReduceAction90
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction91
+private class ReduceAction96
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3915,7 +4204,7 @@ private class ReduceAction91
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction92
+private class ReduceAction97
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3957,7 +4246,7 @@ private class ReduceAction92
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction93
+private class ReduceAction98
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -3996,7 +4285,7 @@ private class ReduceAction93
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction94
+private class ReduceAction99
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4038,7 +4327,7 @@ private class ReduceAction94
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction95
+private class ReduceAction100
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4080,7 +4369,7 @@ private class ReduceAction95
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction96
+private class ReduceAction101
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4125,7 +4414,7 @@ private class ReduceAction96
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction97
+private class ReduceAction102
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4163,7 +4452,7 @@ private class ReduceAction97
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction98
+private class ReduceAction103
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4204,7 +4493,7 @@ private class ReduceAction98
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction99
+private class ReduceAction104
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4245,7 +4534,7 @@ private class ReduceAction99
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction100
+private class ReduceAction105
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4289,7 +4578,7 @@ private class ReduceAction100
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction101
+private class ReduceAction106
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4330,7 +4619,7 @@ private class ReduceAction101
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction102
+private class ReduceAction107
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4374,7 +4663,7 @@ private class ReduceAction102
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction103
+private class ReduceAction108
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4418,7 +4707,7 @@ private class ReduceAction103
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction104
+private class ReduceAction109
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4465,7 +4754,7 @@ private class ReduceAction104
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction105
+private class ReduceAction110
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4506,7 +4795,7 @@ private class ReduceAction105
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction106
+private class ReduceAction111
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4550,7 +4839,7 @@ private class ReduceAction106
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction107
+private class ReduceAction112
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4594,7 +4883,7 @@ private class ReduceAction107
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction108
+private class ReduceAction113
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4641,7 +4930,7 @@ private class ReduceAction108
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction109
+private class ReduceAction114
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4685,7 +4974,7 @@ private class ReduceAction109
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction110
+private class ReduceAction115
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4732,7 +5021,7 @@ private class ReduceAction110
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction111
+private class ReduceAction116
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4779,7 +5068,7 @@ private class ReduceAction111
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction112
+private class ReduceAction117
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4829,7 +5118,7 @@ private class ReduceAction112
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction113
+private class ReduceAction118
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4862,7 +5151,7 @@ private class ReduceAction113
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction114
+private class ReduceAction119
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4898,7 +5187,7 @@ private class ReduceAction114
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction115
+private class ReduceAction120
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4934,7 +5223,7 @@ private class ReduceAction115
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction116
+private class ReduceAction121
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -4973,7 +5262,7 @@ private class ReduceAction116
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction117
+private class ReduceAction122
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5009,7 +5298,7 @@ private class ReduceAction117
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction118
+private class ReduceAction123
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5048,7 +5337,7 @@ private class ReduceAction118
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction119
+private class ReduceAction124
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5087,7 +5376,7 @@ private class ReduceAction119
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction120
+private class ReduceAction125
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5129,7 +5418,7 @@ private class ReduceAction120
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction121
+private class ReduceAction126
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5167,7 +5456,7 @@ private class ReduceAction121
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction122
+private class ReduceAction127
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5208,7 +5497,7 @@ private class ReduceAction122
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction123
+private class ReduceAction128
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5249,7 +5538,7 @@ private class ReduceAction123
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction124
+private class ReduceAction129
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5293,7 +5582,7 @@ private class ReduceAction124
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction125
+private class ReduceAction130
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5334,7 +5623,7 @@ private class ReduceAction125
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction126
+private class ReduceAction131
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5378,7 +5667,7 @@ private class ReduceAction126
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction127
+private class ReduceAction132
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5422,7 +5711,7 @@ private class ReduceAction127
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction128
+private class ReduceAction133
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5469,7 +5758,7 @@ private class ReduceAction128
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction129
+private class ReduceAction134
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5503,7 +5792,7 @@ private class ReduceAction129
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction130
+private class ReduceAction135
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5540,7 +5829,7 @@ private class ReduceAction130
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction131
+private class ReduceAction136
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5577,7 +5866,7 @@ private class ReduceAction131
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction132
+private class ReduceAction137
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5617,7 +5906,7 @@ private class ReduceAction132
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction133
+private class ReduceAction138
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5652,7 +5941,7 @@ private class ReduceAction133
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction134
+private class ReduceAction139
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5690,7 +5979,7 @@ private class ReduceAction134
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction135
+private class ReduceAction140
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5728,7 +6017,7 @@ private class ReduceAction135
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction136
+private class ReduceAction141
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5769,7 +6058,7 @@ private class ReduceAction136
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction137
+private class ReduceAction142
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5801,7 +6090,7 @@ private class ReduceAction137
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction138
+private class ReduceAction143
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5836,133 +6125,756 @@ private class ReduceAction138
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction139
+private class ReduceAction144
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
                                                null,
-                                               tkwreadablenode3
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               null,
+                                               null
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction140
+private class ReduceAction145
        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 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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               null,
+                                               null
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction141
+private class ReduceAction146
        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 tkwwritablenode4 = nodearraylist1
-                                       assert tkwwritablenode4 isa nullable TKwwritable
-                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
                                                null,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
                                                null,
-                                               tkwwritablenode4
+                                               null
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction142
+private class ReduceAction147
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       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 tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
                                                null,
-                                               tkwwritablenode4
+                                               null
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction143
+private class ReduceAction148
        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 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 pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist7
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
                                                null,
-                                               pvisibilitynode3,
-                                               tkwwritablenode4
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               null
                                        )
-                                       node_list = pablenode1
+                                       node_list = ppropdefnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction144
+private class ReduceAction149
        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 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
-                                       )
-                                       node_list = pablenode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction150
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction151
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               null
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction152
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexterncallsnode9 = nodearraylist7
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction153
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexterncallsnode9 = nodearraylist8
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction154
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexterncallsnode9 = nodearraylist8
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction155
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               null,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction156
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist4
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist7
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist8
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction157
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               null,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction158
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var pvisibilitynode4 = nodearraylist2
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist3
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist4
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist5
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist8
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist9
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               null,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction159
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist10 = p.pop
+                                       var nodearraylist9 = p.pop
+                                       var nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pdocnode2 = nodearraylist1
+                                       assert pdocnode2 isa nullable ADoc
+                                       var tkwredefnode3 = nodearraylist2
+                                       assert tkwredefnode3 isa nullable TKwredef
+                                       var pvisibilitynode4 = nodearraylist3
+                                       assert pvisibilitynode4 isa nullable AVisibility
+                                       var tkwnewnode5 = nodearraylist4
+                                       assert tkwnewnode5 isa nullable TKwnew
+                                       var pmethidnode6 = nodearraylist5
+                                       assert pmethidnode6 isa nullable AMethid
+                                       var psignaturenode7 = nodearraylist6
+                                       assert psignaturenode7 isa nullable ASignature
+                                       var tstringnode8 = nodearraylist9
+                                       assert tstringnode8 isa nullable TString
+                                       var pexterncallsnode9 = nodearraylist10
+                                       assert pexterncallsnode9 isa nullable AExternCalls
+                                       var ppropdefnode1: nullable AExternInitPropdef = new AExternInitPropdef.init_aexterninitpropdef(
+                                               pdocnode2,
+                                               tkwredefnode3,
+                                               pvisibilitynode4,
+                                               tkwnewnode5,
+                                               pmethidnode6,
+                                               psignaturenode7,
+                                               tstringnode8,
+                                               pexterncallsnode9
+                                       )
+                                       node_list = ppropdefnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
 end
-private class ReduceAction145
+private class ReduceAction160
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwreadablenode3 = nodearraylist1
+                                       assert tkwreadablenode3 isa nullable TKwreadable
+                                       var pablenode1: nullable AReadAble = new AReadAble.init_areadable(
+                                               null,
+                                               tkwreadablenode3
+                                       )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction161
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var 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
+                                       )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction162
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var tkwwritablenode4 = nodearraylist1
+                                       assert tkwwritablenode4 isa nullable TKwwritable
+                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                               null,
+                                               null,
+                                               tkwwritablenode4
+                                       )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction163
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tkwredefnode2 = nodearraylist1
+                                       assert tkwredefnode2 isa nullable TKwredef
+                                       var tkwwritablenode4 = nodearraylist2
+                                       assert tkwwritablenode4 isa nullable TKwwritable
+                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                               tkwredefnode2,
+                                               null,
+                                               tkwwritablenode4
+                                       )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction164
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var pvisibilitynode3 = nodearraylist1
+                                       assert pvisibilitynode3 isa nullable AVisibility
+                                       var tkwwritablenode4 = nodearraylist2
+                                       assert tkwwritablenode4 isa nullable TKwwritable
+                                       var pablenode1: nullable AWriteAble = new AWriteAble.init_awriteable(
+                                               null,
+                                               pvisibilitynode3,
+                                               tkwwritablenode4
+                                       )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction165
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility(
+                                       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
                                        )
+                                       node_list = pablenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction166
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var pvisibilitynode1: nullable APublicVisibility = new APublicVisibility.init_apublicvisibility
                                        node_list = pvisibilitynode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction146
+private class ReduceAction167
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5978,7 +6890,7 @@ private class ReduceAction146
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction147
+private class ReduceAction168
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -5994,7 +6906,7 @@ private class ReduceAction147
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction148
+private class ReduceAction169
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6010,7 +6922,7 @@ private class ReduceAction148
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction149
+private class ReduceAction170
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6025,7 +6937,7 @@ private class ReduceAction149
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction150
+private class ReduceAction171
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6040,7 +6952,7 @@ private class ReduceAction150
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction151
+private class ReduceAction172
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6055,7 +6967,7 @@ private class ReduceAction151
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction152
+private class ReduceAction173
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6070,7 +6982,7 @@ private class ReduceAction152
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction153
+private class ReduceAction174
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6085,7 +6997,7 @@ private class ReduceAction153
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction154
+private class ReduceAction175
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6100,7 +7012,7 @@ private class ReduceAction154
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction155
+private class ReduceAction176
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6115,7 +7027,7 @@ private class ReduceAction155
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction156
+private class ReduceAction177
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6130,7 +7042,7 @@ private class ReduceAction156
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction157
+private class ReduceAction178
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6145,7 +7057,7 @@ private class ReduceAction157
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction158
+private class ReduceAction179
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6160,7 +7072,7 @@ private class ReduceAction158
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction159
+private class ReduceAction180
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6175,7 +7087,7 @@ private class ReduceAction159
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction160
+private class ReduceAction181
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6190,7 +7102,7 @@ private class ReduceAction160
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction161
+private class ReduceAction182
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6205,7 +7117,7 @@ private class ReduceAction161
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction162
+private class ReduceAction183
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6216,352 +7128,590 @@ private class ReduceAction162
                                        var pmethidnode1: nullable AGgMethid = new AGgMethid.init_aggmethid(
                                                tggnode2
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = pmethidnode1
+                                       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 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 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
+                                       )
+                                       node_list = pmethidnode1
+                                       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 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 ReduceAction187
+       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 ReduceAction188
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var ptypenode5 = nodearraylist4
+                                       assert ptypenode5 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode3,
+                                               tcparnode4,
+                                               ptypenode5,
+                                               listnode6
+                                       )
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction163
+private class ReduceAction189
        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 pmethidnode1: nullable ABraMethid = new ABraMethid.init_abramethid(
-                                               tobranode2,
-                                               tcbranode3
+                                       var listnode4 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var ptypenode6 = nodearraylist5
+                                       assert ptypenode6 isa nullable AType
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               ptypenode6,
+                                               listnode7
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction164
+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 tstarshipnode2 = nodearraylist1
-                                       assert tstarshipnode2 isa nullable TStarship
-                                       var pmethidnode1: nullable AStarshipMethid = new AStarshipMethid.init_astarshipmethid(
-                                               tstarshipnode2
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var ptypenode5 = nodearraylist4
+                                       assert ptypenode5 isa nullable AType
+                                       var listnode6 = nodearraylist6
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode3,
+                                               tcparnode4,
+                                               ptypenode5,
+                                               listnode7
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction165
+private class ReduceAction191
        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 tassignnode3 = nodearraylist2
-                                       assert tassignnode3 isa nullable TAssign
-                                       var pmethidnode1: nullable AAssignMethid = new AAssignMethid.init_aassignmethid(
-                                               tidnode2,
-                                               tassignnode3
+                                       var listnode4 = new Array[Object]
+                                       var listnode8 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var ptypenode6 = nodearraylist5
+                                       assert ptypenode6 isa nullable AType
+                                       var listnode7 = nodearraylist7
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               ptypenode6,
+                                               listnode8
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction166
+private class ReduceAction192
        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 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 listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode3,
+                                               tcparnode4,
+                                               null,
+                                               listnode6
                                        )
-                                       node_list = pmethidnode1
+                                       node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction167
+private class ReduceAction193
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var 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 listnode4 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode5
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               null,
+                                               listnode7
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction168
+private class ReduceAction194
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode6 = new Array[Object]
-                                       var 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 listnode7 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var listnode6 = nodearraylist5
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
                                                listnode3,
-                                               ptypenode4,
-                                               listnode6
+                                               tcparnode4,
+                                               null,
+                                               listnode7
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction169
+private class ReduceAction195
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
                                        var listnode4 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
+                                       var listnode8 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var listnode7 = nodearraylist6
+                                       assert listnode7 isa Array[Object]
+                                       listnode8 = concat(listnode8, listnode7)
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode4
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               null,
+                                               listnode8
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction170
+private class ReduceAction196
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
                                                listnode3,
-                                               ptypenode4,
-                                               listnode5
+                                               null,
+                                               ptypenode5,
+                                               listnode6
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction171
+private class ReduceAction197
        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 listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
+                                       var listnode6 = nodearraylist3
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
                                                null,
-                                               listnode5
+                                               listnode3,
+                                               null,
+                                               ptypenode5,
+                                               listnode7
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction172
+private class ReduceAction198
        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 listnode6 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var listnode5 = nodearraylist2
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
                                                listnode3,
                                                null,
+                                               null,
                                                listnode6
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction173
+private class ReduceAction199
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
+                                       var listnode3 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var listnode6 = nodearraylist2
+                                       assert listnode6 isa Array[Object]
+                                       listnode7 = concat(listnode7, listnode6)
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
                                                null,
-                                               listnode4
+                                               listnode3,
+                                               null,
+                                               null,
+                                               listnode7
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction174
+private class ReduceAction200
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
+                                       var listnode6 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
                                                listnode3,
+                                               tcparnode4,
                                                null,
-                                               listnode5
+                                               listnode6
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction175
+private class ReduceAction201
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode2 = new Array[Object]
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
                                        var listnode4 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               null,
+                                               listnode7
+                                       )
+                                       node_list = psignaturenode1
+                                       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 nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var tcparnode4 = nodearraylist3
+                                       assert tcparnode4 isa nullable TCpar
+                                       var ptypenode5 = nodearraylist4
+                                       assert ptypenode5 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               null,
-                                               listnode4
+                                               toparnode2,
+                                               listnode3,
+                                               tcparnode4,
+                                               ptypenode5,
+                                               listnode6
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction176
+private class ReduceAction203
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
+                                       var listnode4 = new Array[Object]
+                                       var listnode7 = new Array[Object]
+                                       var toparnode2 = nodearraylist1
+                                       assert toparnode2 isa nullable TOpar
+                                       var listnode3 = nodearraylist3
+                                       assert listnode3 isa Array[Object]
+                                       listnode4 = concat(listnode4, listnode3)
+                                       var tcparnode5 = nodearraylist4
+                                       assert tcparnode5 isa nullable TCpar
+                                       var ptypenode6 = nodearraylist5
+                                       assert ptypenode6 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode3,
-                                               null,
-                                               listnode5
+                                               toparnode2,
+                                               listnode4,
+                                               tcparnode5,
+                                               ptypenode6,
+                                               listnode7
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction177
+private class ReduceAction204
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist1 = p.pop
-                                       var listnode2 = new Array[Object]
-                                       var listnode4 = new Array[Object]
-                                       var ptypenode3 = nodearraylist1
-                                       assert ptypenode3 isa nullable AType
+                                       var listnode3 = new Array[Object]
+                                       var listnode6 = new Array[Object]
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
-                                               listnode2,
-                                               ptypenode3,
-                                               listnode4
+                                               null,
+                                               listnode3,
+                                               null,
+                                               null,
+                                               listnode6
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction178
+private class ReduceAction205
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode3 = new Array[Object]
-                                       var listnode5 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
-                                       var ptypenode4 = nodearraylist2
-                                       assert ptypenode4 isa nullable AType
+                                       var listnode6 = new Array[Object]
+                                       var ptypenode5 = nodearraylist1
+                                       assert ptypenode5 isa nullable AType
                                        var psignaturenode1: nullable ASignature = new ASignature.init_asignature(
+                                               null,
                                                listnode3,
-                                               ptypenode4,
-                                               listnode5
+                                               null,
+                                               ptypenode5,
+                                               listnode6
                                        )
                                        node_list = psignaturenode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction179
+private class ReduceAction206
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var nodearraylist5 = p.pop
-                                       var nodearraylist4 = p.pop
-                                       var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
-                                       var pparamnode1 = nodearraylist3
+                                       var pparamnode1 = nodearraylist1
                                        if pparamnode1 != null then
                                                listnode2.add(pparamnode1)
                                        end
@@ -6569,20 +7719,17 @@ private class ReduceAction179
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction180
+private class ReduceAction207
        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 pparamnode1 = nodearraylist3
-                                       var listnode2 = nodearraylist4
+                                       var pparamnode1 = nodearraylist1
+                                       var listnode2 = nodearraylist2
                                        assert listnode2 isa Array[Object]
                                        if pparamnode1 != null then
                                                listnode3.add(pparamnode1)
@@ -6592,20 +7739,7 @@ private class ReduceAction180
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction181
-       super ReduceAction
-       redef fun action(p: Parser)
-       do
-                                       var node_list: nullable Object = null
-                                       var nodearraylist3 = p.pop
-                                       var nodearraylist2 = p.pop
-                                       var nodearraylist1 = p.pop
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
-                                       p.push(p.go_to(_goto), node_list)
-       end
-end
-private class ReduceAction182
+private class ReduceAction208
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6618,7 +7752,7 @@ private class ReduceAction182
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction183
+private class ReduceAction209
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6635,7 +7769,7 @@ private class ReduceAction183
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction184
+private class ReduceAction210
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6655,7 +7789,7 @@ private class ReduceAction184
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction185
+private class ReduceAction211
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6678,22 +7812,21 @@ private class ReduceAction185
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction186
+private class ReduceAction212
        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 listnode1 = nodearraylist2
+                                       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 ReduceAction187
+private class ReduceAction213
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6719,7 +7852,7 @@ private class ReduceAction187
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction188
+private class ReduceAction214
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6748,7 +7881,7 @@ private class ReduceAction188
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction189
+private class ReduceAction215
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6778,7 +7911,7 @@ private class ReduceAction189
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction190
+private class ReduceAction216
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6811,7 +7944,7 @@ private class ReduceAction190
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction191
+private class ReduceAction217
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6842,7 +7975,7 @@ private class ReduceAction191
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction192
+private class ReduceAction218
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6876,7 +8009,7 @@ private class ReduceAction192
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction193
+private class ReduceAction219
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6888,11 +8021,236 @@ private class ReduceAction193
                                                null,
                                                pexprnode3
                                        )
-                                       node_list = pexprnode1
+                                       node_list = pexprnode1
+                                       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 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 ReduceAction221
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var 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 ReduceAction222
+       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 ReduceAction223
+       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 ReduceAction225
+       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 ReduceAction226
+       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 ReduceAction227
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var tquadnode3 = nodearraylist2
+                                       assert tquadnode3 isa nullable TQuad
+                                       var pmethidnode4 = nodearraylist3
+                                       assert pmethidnode4 isa nullable AMethid
+                                       var pexterncallnode1: nullable AFullPropExternCall = new AFullPropExternCall.init_afullpropexterncall(
+                                               tclassidnode2,
+                                               tquadnode3,
+                                               pmethidnode4
+                                       )
+                                       node_list = pexterncallnode1
+                                       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 nodearraylist1 = p.pop
+                                       var tclassidnode2 = nodearraylist1
+                                       assert tclassidnode2 isa nullable TClassid
+                                       var pexterncallnode1: nullable AInitPropExternCall = new AInitPropExternCall.init_ainitpropexterncall(
+                                               tclassidnode2
+                                       )
+                                       node_list = pexterncallnode1
+                                       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 nodearraylist8 = p.pop
+                                       var nodearraylist7 = p.pop
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var ptypenode2 = nodearraylist1
+                                       assert ptypenode2 isa nullable AType
+                                       var tkwasnode3 = nodearraylist2
+                                       assert tkwasnode3 isa nullable TKwas
+                                       var ptypenode4 = nodearraylist6
+                                       assert ptypenode4 isa nullable AType
+                                       var pexterncallnode1: nullable ACastAsExternCall = new ACastAsExternCall.init_acastasexterncall(
+                                               ptypenode2,
+                                               tkwasnode3,
+                                               ptypenode4
+                                       )
+                                       node_list = pexterncallnode1
+                                       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 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
+                                       )
+                                       node_list = pexterncallnode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction231
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist6 = p.pop
+                                       var nodearraylist5 = p.pop
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       var 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
+                                       )
+                                       node_list = pexterncallnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction194
+private class ReduceAction232
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6910,7 +8268,7 @@ private class ReduceAction194
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction195
+private class ReduceAction233
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6931,7 +8289,7 @@ private class ReduceAction195
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction196
+private class ReduceAction234
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6957,7 +8315,7 @@ private class ReduceAction196
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction197
+private class ReduceAction235
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -6986,7 +8344,7 @@ private class ReduceAction197
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction198
+private class ReduceAction236
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7001,7 +8359,7 @@ private class ReduceAction198
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction199
+private class ReduceAction237
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7020,7 +8378,7 @@ private class ReduceAction199
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction200
+private class ReduceAction238
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7033,12 +8391,11 @@ private class ReduceAction200
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction202
+private class ReduceAction240
        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 = nodearraylist2
@@ -7046,7 +8403,7 @@ private class ReduceAction202
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction203
+private class ReduceAction241
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7054,28 +8411,34 @@ private class ReduceAction203
                                        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
+                                               listnode2,
+                                               tkwendnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction204
+private class ReduceAction242
        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
+                                               listnode2,
+                                               tkwendnode3
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction205
+private class ReduceAction243
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7086,7 +8449,7 @@ private class ReduceAction205
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction206
+private class ReduceAction244
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7099,13 +8462,14 @@ private class ReduceAction206
                                                listnode3.add(pexprnode2)
                                        end
                                        var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3
+                                               listnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction207
+private class ReduceAction245
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7122,13 +8486,14 @@ private class ReduceAction207
                                        end
                                        listnode4 = concat(listnode4, listnode3)
                                        var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
+                                               listnode4,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction208
+private class ReduceAction246
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7142,13 +8507,14 @@ private class ReduceAction208
                                                listnode3.add(pexprnode2)
                                        end
                                        var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode3
+                                               listnode3,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction209
+private class ReduceAction247
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7166,25 +8532,66 @@ private class ReduceAction209
                                        end
                                        listnode4 = concat(listnode4, listnode3)
                                        var pexprnode1: nullable ABlockExpr = new ABlockExpr.init_ablockexpr(
-                                               listnode4
+                                               listnode4,
+                                               null
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction210
+private class ReduceAction248
        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 = nodearraylist2
+                                       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 ReduceAction213
+private class ReduceAction249
+       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 ReduceAction253
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7200,7 +8607,7 @@ private class ReduceAction213
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction214
+private class ReduceAction254
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7219,7 +8626,7 @@ private class ReduceAction214
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction215
+private class ReduceAction255
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7236,7 +8643,7 @@ private class ReduceAction215
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction216
+private class ReduceAction256
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7256,7 +8663,7 @@ private class ReduceAction216
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction217
+private class ReduceAction257
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7276,7 +8683,7 @@ private class ReduceAction217
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction218
+private class ReduceAction258
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7299,7 +8706,7 @@ private class ReduceAction218
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction219
+private class ReduceAction259
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7314,7 +8721,7 @@ private class ReduceAction219
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction220
+private class ReduceAction260
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7331,7 +8738,7 @@ private class ReduceAction220
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction221
+private class ReduceAction261
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7351,7 +8758,7 @@ private class ReduceAction221
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction222
+private class ReduceAction262
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7371,7 +8778,7 @@ private class ReduceAction222
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction223
+private class ReduceAction263
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7394,7 +8801,7 @@ private class ReduceAction223
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction230
+private class ReduceAction270
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7405,25 +8812,23 @@ private class ReduceAction230
                                        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 pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               listnode6
+                                               pexprsnode4,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction231
+private class ReduceAction271
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7431,25 +8836,22 @@ private class ReduceAction231
                                        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 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 pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               listnode6
+                                               pexprsnode4,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction232
+private class ReduceAction272
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7460,29 +8862,27 @@ private class ReduceAction232
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode5 = new Array[Object]
-                                       var listnode7 = 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 listnode6 = nodearraylist6
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist6
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               listnode7
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction233
+private class ReduceAction273
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7490,51 +8890,46 @@ private class ReduceAction233
                                        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 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 listnode6 = nodearraylist3
-                                       assert listnode6 isa Array[Object]
-                                       listnode7 = concat(listnode7, listnode6)
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var listnode5 = nodearraylist3
+                                       assert listnode5 isa Array[Object]
+                                       listnode6 = concat(listnode6, listnode5)
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               listnode7
+                                               pexprsnode4,
+                                               listnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction234
+private class ReduceAction274
        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 tkwsupernode3 = nodearraylist1
                                        assert tkwsupernode3 isa nullable TKwsuper
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                null,
                                                tkwsupernode3,
-                                               listnode5
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction235
+private class ReduceAction275
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7542,24 +8937,22 @@ private class ReduceAction235
                                        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 pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ASuperExpr = new ASuperExpr.init_asuperexpr(
                                                pqualifiednode2,
                                                tkwsupernode3,
-                                               listnode5
+                                               pexprsnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction236
+private class ReduceAction276
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7569,48 +8962,71 @@ private class ReduceAction236
                                        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 pexprsnode4 = nodearraylist5
+                                       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 ReduceAction237
+private class ReduceAction277
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tkwinitnode3 = nodearraylist1
                                        assert tkwinitnode3 isa nullable TKwinit
-                                       var listnode4 = nodearraylist2
-                                       assert listnode4 isa Array[Object]
-                                       listnode5 = concat(listnode5, listnode4)
+                                       var pexprsnode4 = nodearraylist2
+                                       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 ReduceAction238
+private class ReduceAction278
+       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 ReduceAction279
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7629,7 +9045,7 @@ private class ReduceAction238
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction239
+private class ReduceAction280
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7644,7 +9060,7 @@ private class ReduceAction239
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction240
+private class ReduceAction281
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7663,7 +9079,7 @@ private class ReduceAction240
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction241
+private class ReduceAction282
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7696,7 +9112,7 @@ private class ReduceAction241
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction242
+private class ReduceAction283
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7735,7 +9151,7 @@ private class ReduceAction242
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction243
+private class ReduceAction284
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7772,7 +9188,7 @@ private class ReduceAction243
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction244
+private class ReduceAction285
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7802,7 +9218,7 @@ private class ReduceAction244
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction245
+private class ReduceAction286
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7838,7 +9254,7 @@ private class ReduceAction245
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction246
+private class ReduceAction287
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7872,7 +9288,7 @@ private class ReduceAction246
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction247
+private class ReduceAction288
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7901,7 +9317,7 @@ private class ReduceAction247
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction248
+private class ReduceAction289
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7936,7 +9352,7 @@ private class ReduceAction248
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction249
+private class ReduceAction290
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -7969,7 +9385,7 @@ private class ReduceAction249
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction250
+private class ReduceAction291
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8000,7 +9416,7 @@ private class ReduceAction250
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction251
+private class ReduceAction292
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8037,7 +9453,7 @@ private class ReduceAction251
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction252
+private class ReduceAction293
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8072,7 +9488,7 @@ private class ReduceAction252
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction253
+private class ReduceAction294
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8100,7 +9516,7 @@ private class ReduceAction253
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction254
+private class ReduceAction295
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8134,7 +9550,7 @@ private class ReduceAction254
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction255
+private class ReduceAction296
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8166,7 +9582,7 @@ private class ReduceAction255
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction256
+private class ReduceAction297
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8181,7 +9597,7 @@ private class ReduceAction256
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction257
+private class ReduceAction298
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8196,7 +9612,7 @@ private class ReduceAction257
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction258
+private class ReduceAction299
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8213,7 +9629,7 @@ private class ReduceAction258
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction259
+private class ReduceAction300
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8235,7 +9651,7 @@ private class ReduceAction259
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction260
+private class ReduceAction301
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8260,7 +9676,7 @@ private class ReduceAction260
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction261
+private class ReduceAction302
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8289,7 +9705,7 @@ private class ReduceAction261
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction262
+private class ReduceAction303
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8321,7 +9737,7 @@ private class ReduceAction262
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction263
+private class ReduceAction304
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8350,7 +9766,7 @@ private class ReduceAction263
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction264
+private class ReduceAction305
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8358,8 +9774,7 @@ private class ReduceAction264
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tattridnode3 = nodearraylist1
                                        assert tattridnode3 isa nullable TAttrid
                                        var tassignnode4 = nodearraylist2
@@ -8376,7 +9791,7 @@ private class ReduceAction264
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction265
+private class ReduceAction306
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8388,30 +9803,28 @@ private class ReduceAction265
                                        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 pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist6
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction266
+private class ReduceAction307
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8420,30 +9833,27 @@ private class ReduceAction266
                                        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 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 pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var tassignnode5 = nodearraylist3
+                                       assert tassignnode5 isa nullable TAssign
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallAssignExpr = new ACallAssignExpr.init_acallassignexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               tassignnode6,
-                                               pexprnode7
+                                               pexprsnode4,
+                                               tassignnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction267
+private class ReduceAction308
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8452,27 +9862,25 @@ private class ReduceAction267
                                        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 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,
-                                               listnode4,
-                                               tassignnode5,
-                                               pexprnode6
+                                               pexprsnode3,
+                                               tassignnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction268
+private class ReduceAction309
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8501,7 +9909,7 @@ private class ReduceAction268
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction269
+private class ReduceAction310
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8509,8 +9917,7 @@ private class ReduceAction269
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
+                                       var pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tattridnode3 = nodearraylist1
                                        assert tattridnode3 isa nullable TAttrid
                                        var passignopnode4 = nodearraylist2
@@ -8527,7 +9934,7 @@ private class ReduceAction269
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction270
+private class ReduceAction311
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8539,30 +9946,28 @@ private class ReduceAction270
                                        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 pexprsnode4 = nodearraylist5
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist6
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist7
+                                       assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction271
+private class ReduceAction312
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8571,30 +9976,27 @@ private class ReduceAction271
                                        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 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 pexprsnode4 = nodearraylist2
+                                       assert pexprsnode4 isa nullable AExprs
+                                       var passignopnode5 = nodearraylist3
+                                       assert passignopnode5 isa nullable AAssignOp
+                                       var pexprnode6 = nodearraylist4
+                                       assert pexprnode6 isa nullable AExpr
                                        var pexprnode1: nullable ACallReassignExpr = new ACallReassignExpr.init_acallreassignexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               passignopnode6,
-                                               pexprnode7
+                                               pexprsnode4,
+                                               passignopnode5,
+                                               pexprnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction272
+private class ReduceAction313
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8603,27 +10005,25 @@ private class ReduceAction272
                                        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 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,
-                                               listnode4,
-                                               passignopnode5,
-                                               pexprnode6
+                                               pexprsnode3,
+                                               passignopnode4,
+                                               pexprnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction273
+private class ReduceAction314
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8638,7 +10038,7 @@ private class ReduceAction273
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction274
+private class ReduceAction315
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8653,7 +10053,7 @@ private class ReduceAction274
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction275
+private class ReduceAction316
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8676,7 +10076,7 @@ private class ReduceAction275
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction276
+private class ReduceAction317
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8696,7 +10096,7 @@ private class ReduceAction276
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction277
+private class ReduceAction318
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8727,7 +10127,7 @@ private class ReduceAction277
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction278
+private class ReduceAction319
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8754,7 +10154,7 @@ private class ReduceAction278
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction279
+private class ReduceAction320
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8785,7 +10185,7 @@ private class ReduceAction279
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction280
+private class ReduceAction321
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8812,7 +10212,7 @@ private class ReduceAction280
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction281
+private class ReduceAction322
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8840,7 +10240,7 @@ private class ReduceAction281
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction284
+private class ReduceAction325
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8863,7 +10263,7 @@ private class ReduceAction284
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction285
+private class ReduceAction326
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8883,7 +10283,7 @@ private class ReduceAction285
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction286
+private class ReduceAction327
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8916,7 +10316,7 @@ private class ReduceAction286
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction287
+private class ReduceAction328
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8946,7 +10346,7 @@ private class ReduceAction287
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction288
+private class ReduceAction329
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -8990,7 +10390,7 @@ private class ReduceAction288
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction289
+private class ReduceAction330
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9032,7 +10432,7 @@ private class ReduceAction289
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction290
+private class ReduceAction331
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9073,7 +10473,7 @@ private class ReduceAction290
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction291
+private class ReduceAction332
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9112,7 +10512,7 @@ private class ReduceAction291
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction292
+private class ReduceAction333
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9137,7 +10537,7 @@ private class ReduceAction292
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction293
+private class ReduceAction334
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9165,7 +10565,7 @@ private class ReduceAction293
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction294
+private class ReduceAction335
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9186,7 +10586,7 @@ private class ReduceAction294
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction295
+private class ReduceAction336
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9210,7 +10610,7 @@ private class ReduceAction295
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction296
+private class ReduceAction337
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9222,7 +10622,7 @@ private class ReduceAction296
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction300
+private class ReduceAction341
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9230,26 +10630,24 @@ private class ReduceAction300
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode4 = new Array[Object]
-                                       var listnode6 = new Array[Object]
+                                       var listnode5 = 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 pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
+                                       var listnode4 = nodearraylist3
+                                       assert listnode4 isa Array[Object]
+                                       listnode5 = concat(listnode5, listnode4)
                                        var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
                                                pexprnode2,
-                                               listnode4,
-                                               listnode6
+                                               pexprsnode3,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction302
+private class ReduceAction343
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9289,7 +10687,7 @@ private class ReduceAction302
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction304
+private class ReduceAction345
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9310,7 +10708,7 @@ private class ReduceAction304
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction305
+private class ReduceAction346
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9331,7 +10729,7 @@ private class ReduceAction305
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction306
+private class ReduceAction347
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9353,7 +10751,7 @@ private class ReduceAction306
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction308
+private class ReduceAction349
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9373,7 +10771,7 @@ private class ReduceAction308
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction310
+private class ReduceAction351
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9394,7 +10792,7 @@ private class ReduceAction310
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction311
+private class ReduceAction352
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9415,7 +10813,7 @@ private class ReduceAction311
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction312
+private class ReduceAction353
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9436,7 +10834,7 @@ private class ReduceAction312
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction313
+private class ReduceAction354
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9457,7 +10855,7 @@ private class ReduceAction313
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction314
+private class ReduceAction355
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9478,7 +10876,7 @@ private class ReduceAction314
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction315
+private class ReduceAction356
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9499,7 +10897,7 @@ private class ReduceAction315
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction316
+private class ReduceAction357
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9520,7 +10918,7 @@ private class ReduceAction316
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction317
+private class ReduceAction358
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9541,7 +10939,7 @@ private class ReduceAction317
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction318
+private class ReduceAction359
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9562,7 +10960,7 @@ private class ReduceAction318
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction319
+private class ReduceAction360
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9583,7 +10981,7 @@ private class ReduceAction319
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction320
+private class ReduceAction361
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9604,7 +11002,7 @@ private class ReduceAction320
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction322
+private class ReduceAction363
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9625,7 +11023,7 @@ private class ReduceAction322
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction323
+private class ReduceAction364
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9646,7 +11044,7 @@ private class ReduceAction323
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction325
+private class ReduceAction366
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9667,7 +11065,7 @@ private class ReduceAction325
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction326
+private class ReduceAction367
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9688,7 +11086,7 @@ private class ReduceAction326
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction327
+private class ReduceAction368
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9709,7 +11107,7 @@ private class ReduceAction327
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction329
+private class ReduceAction370
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9729,7 +11127,7 @@ private class ReduceAction329
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction330
+private class ReduceAction371
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9749,7 +11147,7 @@ private class ReduceAction330
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction332
+private class ReduceAction373
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9758,25 +11156,23 @@ private class ReduceAction332
                                        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 pexprsnode5 = nodearraylist4
+                                       assert pexprsnode5 isa nullable AExprs
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
                                                null,
-                                               listnode6
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction333
+private class ReduceAction374
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9801,7 +11197,7 @@ private class ReduceAction333
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction334
+private class ReduceAction375
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9810,8 +11206,7 @@ private class ReduceAction334
                                        var nodearraylist1 = p.pop
                                        var tkwissetnode2 = nodearraylist1
                                        assert tkwissetnode2 isa nullable TKwisset
-                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
+                                       var pexprnode3: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tattridnode4 = nodearraylist2
                                        assert tattridnode4 isa nullable TAttrid
                                        var pexprnode1: nullable AIssetAttrExpr = new AIssetAttrExpr.init_aissetattrexpr(
@@ -9823,7 +11218,7 @@ private class ReduceAction334
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction335
+private class ReduceAction376
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9844,14 +11239,13 @@ private class ReduceAction335
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction336
+private class ReduceAction377
        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 pexprnode2: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        var tattridnode3 = nodearraylist1
                                        assert tattridnode3 isa nullable TAttrid
                                        var pexprnode1: nullable AAttrExpr = new AAttrExpr.init_aattrexpr(
@@ -9862,7 +11256,7 @@ private class ReduceAction336
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction343
+private class ReduceAction384
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9870,22 +11264,20 @@ private class ReduceAction343
                                        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
-                                       assert listnode3 isa Array[Object]
-                                       listnode4 = concat(listnode4, listnode3)
+                                       var pexprsnode3 = nodearraylist2
+                                       assert pexprsnode3 isa nullable AExprs
                                        var pexprnode1: nullable ABraExpr = new ABraExpr.init_abraexpr(
                                                pexprnode2,
-                                               listnode4,
-                                               listnode5
+                                               pexprsnode3,
+                                               listnode4
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction344
+private class ReduceAction385
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9897,27 +11289,25 @@ private class ReduceAction344
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var listnode6 = new Array[Object]
                                        var tkwnewnode2 = nodearraylist1
                                        assert tkwnewnode2 isa nullable TKwnew
                                        var ptypenode3 = nodearraylist3
                                        assert ptypenode3 isa nullable AType
                                        var tidnode4 = nodearraylist6
                                        assert tidnode4 isa nullable TId
-                                       var listnode5 = nodearraylist7
-                                       assert listnode5 isa Array[Object]
-                                       listnode6 = concat(listnode6, listnode5)
+                                       var pexprsnode5 = nodearraylist7
+                                       assert pexprsnode5 isa nullable AExprs
                                        var pexprnode1: nullable ANewExpr = new ANewExpr.init_anewexpr(
                                                tkwnewnode2,
                                                ptypenode3,
                                                tidnode4,
-                                               listnode6
+                                               pexprsnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction345
+private class ReduceAction386
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9931,19 +11321,25 @@ private class ReduceAction345
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist7
+                                       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(
-                                               pexprnode2,
-                                               pexprnode3
+                                               tobranode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               tcbranode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction346
+private class ReduceAction387
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -9957,36 +11353,40 @@ private class ReduceAction346
                                        var nodearraylist3 = p.pop
                                        var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
-                                       var pexprnode2 = nodearraylist3
-                                       assert pexprnode2 isa nullable AExpr
-                                       var pexprnode3 = nodearraylist7
+                                       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(
-                                               pexprnode2,
-                                               pexprnode3
+                                               tobranode2,
+                                               pexprnode3,
+                                               pexprnode4,
+                                               tobranode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction347
+private class ReduceAction388
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
                                        var nodearraylist1 = p.pop
-                                       var listnode3 = new Array[Object]
-                                       var listnode2 = nodearraylist1
-                                       assert listnode2 isa Array[Object]
-                                       listnode3 = concat(listnode3, listnode2)
+                                       var pexprsnode2 = nodearraylist1
+                                       assert pexprsnode2 isa nullable AExprs
                                        var pexprnode1: nullable AArrayExpr = new AArrayExpr.init_aarrayexpr(
-                                               listnode3
+                                               pexprsnode2
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction348
+private class ReduceAction389
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10001,7 +11401,7 @@ private class ReduceAction348
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction349
+private class ReduceAction390
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10016,7 +11416,7 @@ private class ReduceAction349
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction350
+private class ReduceAction391
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10031,7 +11431,7 @@ private class ReduceAction350
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction351
+private class ReduceAction392
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10046,7 +11446,7 @@ private class ReduceAction351
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction352
+private class ReduceAction393
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10061,7 +11461,7 @@ private class ReduceAction352
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction353
+private class ReduceAction394
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10076,7 +11476,7 @@ private class ReduceAction353
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction354
+private class ReduceAction395
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10091,7 +11491,7 @@ private class ReduceAction354
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction355
+private class ReduceAction396
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10106,7 +11506,30 @@ private class ReduceAction355
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction358
+private class ReduceAction398
+       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
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction399
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10125,18 +11548,24 @@ private class ReduceAction358
                                        assert pexprnode2 isa nullable AExpr
                                        var tkwasnode3 = nodearraylist4
                                        assert tkwasnode3 isa nullable TKwas
-                                       var ptypenode4 = nodearraylist8
-                                       assert ptypenode4 isa nullable AType
+                                       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,
-                                               ptypenode4
+                                               toparnode4,
+                                               ptypenode5,
+                                               tcparnode6
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction359
+private class ReduceAction400
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10157,21 +11586,27 @@ private class ReduceAction359
                                        assert pexprnode2 isa nullable AExpr
                                        var tkwasnode3 = nodearraylist4
                                        assert tkwasnode3 isa nullable TKwas
-                                       var tkwnotnode4 = nodearraylist8
-                                       assert tkwnotnode4 isa nullable TKwnot
-                                       var tkwnullnode5 = nodearraylist10
-                                       assert tkwnullnode5 isa nullable TKwnull
+                                       var 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,
-                                               tkwnotnode4,
-                                               tkwnullnode5
+                                               toparnode4,
+                                               tkwnotnode5,
+                                               tkwnullnode6,
+                                               tcparnode7
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction360
+private class ReduceAction401
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10194,7 +11629,7 @@ private class ReduceAction360
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction361
+private class ReduceAction402
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10221,7 +11656,7 @@ private class ReduceAction361
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction362
+private class ReduceAction403
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10243,7 +11678,7 @@ private class ReduceAction362
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction363
+private class ReduceAction404
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10258,7 +11693,7 @@ private class ReduceAction363
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction365
+private class ReduceAction406
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10273,7 +11708,7 @@ private class ReduceAction365
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction366
+private class ReduceAction407
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10288,63 +11723,118 @@ private class ReduceAction366
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction367
+private class ReduceAction408
        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
+                                       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 = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction368
+private class ReduceAction409
        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)
+                                       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 = pexprsnode1
+                                       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 listnode2 = new Array[Object]
+                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode2
+                                       )
+                                       node_list = pexprsnode1
+                                       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 listnode3 = new Array[Object]
+                                       var pexprnode2 = nodearraylist1
+                                       assert pexprnode2 isa nullable AExpr
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
                                        end
-                                       listnode3 = concat(listnode3, listnode2)
-                                       node_list = listnode3
+                                       var pexprsnode1: nullable AListExprs = new AListExprs.init_alistexprs(
+                                               listnode3
+                                       )
+                                       node_list = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction370
+private class ReduceAction415
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var listnode1 = new Array[Object]
-                                       node_list = listnode1
+                                       var nodearraylist4 = p.pop
+                                       var nodearraylist3 = p.pop
+                                       var nodearraylist2 = p.pop
+                                       var nodearraylist1 = p.pop
+                                       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 = pexprsnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction373
+private class ReduceAction416
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
+                                       var nodearraylist2 = p.pop
                                        var nodearraylist1 = p.pop
                                        var listnode2 = new Array[Object]
                                        var pexprnode1 = nodearraylist1
@@ -10355,7 +11845,27 @@ private class ReduceAction373
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction378
+private class ReduceAction417
+       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 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 ReduceAction418
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10369,7 +11879,7 @@ private class ReduceAction378
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction379
+private class ReduceAction419
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10384,7 +11894,7 @@ private class ReduceAction379
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction380
+private class ReduceAction420
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10406,7 +11916,95 @@ private class ReduceAction380
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction381
+private class ReduceAction421
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       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
+                                       )
+                                       node_list = pmodulenamenode1
+                                       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 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(
+                                               null,
+                                               listnode4,
+                                               tidnode5
+                                       )
+                                       node_list = pmodulenamenode1
+                                       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 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
+                                       )
+                                       node_list = pmodulenamenode1
+                                       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 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
+                                       )
+                                       node_list = pmodulenamenode1
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction425
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10423,7 +12021,7 @@ private class ReduceAction381
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction382
+private class ReduceAction426
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10444,7 +12042,7 @@ private class ReduceAction382
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction383
+private class ReduceAction427
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10462,7 +12060,7 @@ private class ReduceAction383
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction384
+private class ReduceAction428
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10475,7 +12073,7 @@ private class ReduceAction384
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction385
+private class ReduceAction429
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10488,7 +12086,7 @@ private class ReduceAction385
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction386
+private class ReduceAction430
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10497,7 +12095,7 @@ private class ReduceAction386
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction388
+private class ReduceAction432
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10514,7 +12112,7 @@ private class ReduceAction388
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction389
+private class ReduceAction433
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10532,7 +12130,7 @@ private class ReduceAction389
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction391
+private class ReduceAction435
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10541,7 +12139,7 @@ private class ReduceAction391
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction392
+private class ReduceAction436
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10552,7 +12150,7 @@ private class ReduceAction392
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction393
+private class ReduceAction437
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10562,7 +12160,7 @@ private class ReduceAction393
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction394
+private class ReduceAction438
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10573,7 +12171,7 @@ private class ReduceAction394
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction647
+private class ReduceAction698
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10596,7 +12194,7 @@ private class ReduceAction647
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction648
+private class ReduceAction699
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10615,7 +12213,7 @@ private class ReduceAction648
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction649
+private class ReduceAction700
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10624,25 +12222,23 @@ private class ReduceAction649
                                        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 pexprsnode4 = nodearraylist3
+                                       assert pexprsnode4 isa nullable AExprs
                                        var pexprnode1: nullable ACallExpr = new ACallExpr.init_acallexpr(
                                                pexprnode2,
                                                tidnode3,
-                                               listnode5,
-                                               listnode6
+                                               pexprsnode4,
+                                               listnode5
                                        )
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction652
+private class ReduceAction703
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10650,24 +12246,22 @@ private class ReduceAction652
                                        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 ReduceAction665
+private class ReduceAction716
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10680,18 +12274,17 @@ private class ReduceAction665
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction666
+private class ReduceAction717
        super ReduceAction
        redef fun action(p: Parser)
        do
                                        var node_list: nullable Object = null
-                                       var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr(
-                                       )
+                                       var pexprnode1: nullable AImplicitSelfExpr = new AImplicitSelfExpr.init_aimplicitselfexpr
                                        node_list = pexprnode1
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction673
+private class ReduceAction724
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10706,7 +12299,7 @@ private class ReduceAction673
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction674
+private class ReduceAction725
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10725,7 +12318,7 @@ private class ReduceAction674
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction675
+private class ReduceAction726
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10740,7 +12333,7 @@ private class ReduceAction675
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction676
+private class ReduceAction727
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10759,7 +12352,7 @@ private class ReduceAction676
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction677
+private class ReduceAction728
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10774,7 +12367,7 @@ private class ReduceAction677
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction678
+private class ReduceAction729
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10793,7 +12386,7 @@ private class ReduceAction678
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction679
+private class ReduceAction730
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10808,7 +12401,7 @@ private class ReduceAction679
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction680
+private class ReduceAction731
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10827,7 +12420,7 @@ private class ReduceAction680
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction683
+private class ReduceAction734
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10842,7 +12435,7 @@ private class ReduceAction683
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction684
+private class ReduceAction735
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10861,7 +12454,7 @@ private class ReduceAction684
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction685
+private class ReduceAction736
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10876,7 +12469,7 @@ private class ReduceAction685
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction686
+private class ReduceAction737
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10895,7 +12488,7 @@ private class ReduceAction686
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction687
+private class ReduceAction738
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10910,7 +12503,7 @@ private class ReduceAction687
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction688
+private class ReduceAction739
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10929,7 +12522,22 @@ private class ReduceAction688
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction690
+private class ReduceAction740
+       super ReduceAction
+       redef fun action(p: Parser)
+       do
+                                       var node_list: nullable Object = null
+                                       var nodearraylist1 = p.pop
+                                       var listnode2 = new Array[Object]
+                                       var pexterncallnode1 = nodearraylist1
+                                       if pexterncallnode1 != null then
+                                               listnode2.add(pexterncallnode1)
+                                       end
+                                       node_list = listnode2
+                                       p.push(p.go_to(_goto), node_list)
+       end
+end
+private class ReduceAction741
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10939,16 +12547,16 @@ private class ReduceAction690
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var ptypenode2 = nodearraylist2
+                                       var pexterncallnode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if ptypenode2 != null then
-                                               listnode3.add(ptypenode2)
+                                       if pexterncallnode2 != null then
+                                               listnode3.add(pexterncallnode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction692
+private class ReduceAction743
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10958,30 +12566,50 @@ private class ReduceAction692
                                        var listnode3 = new Array[Object]
                                        var listnode1 = nodearraylist1
                                        assert listnode1 isa Array[Object]
-                                       var pexprnode2 = nodearraylist2
+                                       var ptypenode2 = nodearraylist2
                                        listnode3 = concat(listnode3, listnode1)
-                                       if pexprnode2 != null then
-                                               listnode3.add(pexprnode2)
+                                       if ptypenode2 != null then
+                                               listnode3.add(ptypenode2)
                                        end
                                        node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction693
+private class ReduceAction744
        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 ReduceAction745
+       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]
-                                       listnode2 = concat(listnode2, listnode1)
-                                       node_list = listnode2
+                                       var pexprnode2 = nodearraylist2
+                                       listnode3 = concat(listnode3, listnode1)
+                                       if pexprnode2 != null then
+                                               listnode3.add(pexprnode2)
+                                       end
+                                       node_list = listnode3
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction694
+private class ReduceAction747
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -10999,7 +12627,7 @@ private class ReduceAction694
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction698
+private class ReduceAction751
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11018,7 +12646,7 @@ private class ReduceAction698
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction699
+private class ReduceAction752
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11033,7 +12661,7 @@ private class ReduceAction699
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction700
+private class ReduceAction753
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11052,7 +12680,7 @@ private class ReduceAction700
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction701
+private class ReduceAction754
        super ReduceAction
        redef fun action(p: Parser)
        do
@@ -11067,7 +12695,7 @@ private class ReduceAction701
                                        p.push(p.go_to(_goto), node_list)
        end
 end
-private class ReduceAction702
+private class ReduceAction755
        super ReduceAction
        redef fun action(p: Parser)
        do